На этот вопрос уже есть ответ здесь:
Я установил рубиновый камень под названием Redcar, который запускается из командной строки. Когда он запускается, он крадет оболочку до ее завершения, поэтому мне нужно создать новое окно оболочки, чтобы продолжить работу в командной строке. Используемая мной оболочка - это оболочка GITBash от MySysGit.
Я обнаружил, что файл Redcar.bat предназначен для запуска Redcar в качестве ярлыка, но я не хочу, чтобы дополнительное окно командной строки открывалось всякий раз, когда я запускаю файл BAT.
Как мне просто запустить BAT, не видя подсказку?
windows
command-line
batch
Джейк
источник
источник
set var1=hello.txt
строка 2:start "test" notepad.exe "%~dp0%var1%"
::
или@REM
. Источник: superuser.com/a/843754/101936Ответы:
Вы не можете - выполнение командного файла со встроенной командной строкой будет держать окно открытым до выхода из командного файла.
Что вы можете сделать, это предпринять шаги, чтобы убедиться, что пакетный файл завершается как можно быстрее. Если это вообще возможно, измените командный файл для запуска любой программы с помощью
start
команды. По умолчаниюstart
возвращается немедленно, не дожидаясь завершения программы, поэтому пакетный файл продолжит работу и, по-видимому, немедленно завершится. Соедините это с изменением ярлыка, чтобы минимизировать запуск командного файла, и вы увидите только вспышку панели задач, даже не увидев окно на экране.Одно предостережение: если вы запускаете программу в консольном режиме, которой являются многие интерпретаторы сценариев, пакетный файл будет ожидать выхода из программы, а при использовании
start
появится новое окно консоли. В этом случае вам нужно запустить версию интерпретатора для Windows вместо консольной - в этом нетstart
необходимости. Для Perl вы бы запустилиwperl.exe
вместоperl.exe
. Для Python этоpythonw.exe
вместоpython.exe
. В старом дистрибутиве Win32 Ruby, который я скачалrubyw.exe
, должно быть то же самое.Последняя возможность - использовать сторонний инструмент для запуска командной строки со скрытым окном. Я слышал о таких вещах, но никогда не использовал их, поэтому я не знаю ничего, на что можно было бы указать.
источник
Я думаю, что это самое простое и самое короткое решение для запуска пакетного файла без открытия окна DOS, оно может быть очень отвлекающим, если вы хотите запланировать набор команд для периодического запуска, поэтому окно DOS продолжает появляться, вот ваше решение , Используйте скрипт VB для вызова командного файла ...
Скопируйте строки выше в редактор и сохраните файл с расширением .VBS. Отредактируйте имя файла .BAT и путь соответственно. Тогда просто запустите файл .vbs, и волшебство произойдет!
источник
Вы можете запустить другой пакетный файл с помощью START / MIN CMD.EXE / C mybatchfile.bat из командной строки.
Снаружи откроется окно консоли cmd, но во избежание этого вы можете создать файл ярлыка со свойствами, измененными для запуска в свернутом виде .
источник
Для этого используйте программу Bat To Exe Converter, чтобы конвертировать ваш командный файл в исполняемый файл.
При преобразовании в исполняемый файл вы найдете возможность запустить ваш файл как приложение-невидимку в разделе видимости. Таким образом, когда вы запустите его, он будет работать без окна.
источник
Продолжая ответ Денниса Уильямсона, вы можете отредактировать командный файл и добавить (prepend)
START /B
к выполняемой вами команде.Например, у меня есть пакетный файл, который запускает замазку и имел ту же проблему (дополнительный CMD), поэтому я так и написал:
Это сработало отлично.
источник
Дайте это попробовать:
примечание добавлено по барлоп
Начало /? говорит о / B
источник
Я не совсем понимаю вашу проблему, но с некоторыми из моих пакетных файлов я использую «глупого», единственная цель которого - запустить основной пакетный файл.
Итак, GO.BAT будет иметь:
Выход закрывает окно командной строки, которое в противном случае оставалось бы открытым.
И GO2.BAT будет иметь фактически содержимое пакетного файла, которое я хочу.
источник
Вы можете использовать RunHiddenConsole
hideExec.bat
источник
Если вы все еще заинтересованы в том, чтобы вообще не показывать окно консоли, вот решение от stackoverflow, которое сработало для меня (в моем случае я ничего не помещал в реестр, но там, где мне было нужно).
источник
Просто поместите переключатель / b перед дорожкой. Это не откроет вторую командную строку.
источник
Ответ Indago был лучшим решением для меня до сих пор. Файл VBS позволяет мне запускать функции пакета через сценарий, предотвращая появление окна CMD. Есть несколько предостережений, хотя:
Если вашему пакету требуются права администратора, создайте или используйте существующий пакет, который вызывает VBS, и запустите этот пакет от имени администратора.
При отсутствии видимости может быть трудно определить, действительно ли то, что вы пытаетесь сделать, идет так, как вы этого хотите.
С учетом вышесказанного, я сначала поставил небольшую пробную настройку / модульный тест, чтобы убедиться, что он работает именно так, как вы хотите, прежде чем интегрировать его.
источник
Я использовал cmdow в прошлом, и это, кажется, сработало для того, что я хочу.
Возможно, вы захотите использовать один из следующих вариантов:
CMDOW [window] /HID
/HID
скрывает указанное окноCMDOW [window] /END
/END
закрывает указанное окноCMDOW [window] /CLS
/CLS
вежливо попросил закрыть окно (некоторые окна могут открывать диалоговое окно)Надеюсь это поможет.
источник
Просто сделайте ярлык для командного файла, щелкните правой кнопкой мыши на нем, нажмите
Properties
, перейдите наGeneral
вкладку, установите флажокHidden
, нажмите,Apply
затем и затемOK
.Теперь, когда вы откроете ярлык, он запустит командный файл Hidden.
источник