У меня есть вот такой файл летучей мыши:
ipconfigЭто выведет информацию об IP на экран, но прежде, чем пользователь сможет прочитать эту информацию, CMD закрывается.
Я считаю, что CMD предполагает, что сценарий завершен, поэтому он закрывается.
Как оставить CMD открытым после завершения скрипта?
у меня есть пакетный файл. После его завершения, т. е. все командные строки были выполнены,cmd.exe окно остается открытым. Тем не менее, я хотел бы закрыть его сразу после завершения работы пакетного файла.
до сих пор я пробовал использовать exit команда в пакетном файле, чтобы закрыть окно cmd (у меня также есть ярлык на рабочем столе), но она, похоже, не работает:
tncserver.exe C:Work -p4 -b57600 -r -cFE -tTNC426B
exitЯ запускаю командный файл, в котором есть эти две строки:
start C:\Users\Yiwei\Downloads\putty.exe -load "MathCS-labMachine1"
"C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindowЭтот командный файл используется для запуска приложения Xming, а затем приложения PuTTY, поэтому я могу подключиться по SSH в компьютерной лаборатории моего университета.
Однако, если я запустил это, а Xming еще не открыт, после выхода из терминала PuTTY окно cmd останется открытым. Окно cmd закрывается, только если я уже запустил Xming, когда я закрываю терминал PuTTY. Я пробовал добавить exit в последнюю строку командного файла, но безуспешно.
Общие сведения о командном процессоре Windows.
Использование переменных в командных файлах.
Передача параметров командному файлу.
Переходы и метки.
Примеры командных файлов:
– Своя команда для создания новых файлов.
– Присвоение съемному диску одной и той же буквы.
– Создание архива, имя которого содержит дату и время.
– Выполнение только в заданный интервал времени.
– Пример создания архива каталога пользователя.
– Изменение даты и времени для файлов и папок.
– Запуск и остановка служб Windows в командной строке.
– Выдача на экран значения ERRORLEVEL.
– Диалог с пользователем.
– Задержки в командных файлах.
– Определение текущей версии Windows.
– Поиск в локальной сети компьютеров с запущенным приложением.
– Поиск компьютеров с запущенным приложением по списку на основе сетевого окружения.
– Выключение компьютеров по списку, созданному на основе сетевого окружения.
– Поиск в локальной сети включенных компьютеров.
– Работа с дисками, файлами и каталогами.
– Работа с графическими приложениями из командной строки.
– Перекодировка текстовых файлов .
– Часто встречающиеся ошибки при написании командных файлов.
Модераторы: Al_lexx, Sharp, ionika, Happy_MAN, 0xFF, Atom, Serega S.U.
padsel
- Сообщения: 3
- Зарегистрирован: 19 янв 2007, 19:30
как закрыть cmd.exe после исполнения батника?
чтобы при загрузке комп подключался к инету и запускалась опера
написал:
rasphone.exe -d название_соединения
“f:\program files\Opera\opera.exe”
exit
сохранил, как батник и поставил в автозагрузку
всё работает, только cmd.exe не закрывается после выполнения
older
- Сообщения: 34
- Зарегистрирован: 30 июл 2009, 10:09
Re: как закрыть cmd.exe после исполнения батника?
20 окт 2009, 12:42
1. Создай на рабочем столе иконку на запуск своего батника.
поставь галку – закрывать окно после завершения в свойствах иконки.
2. Скопируй получившийся PIF-файл из папки рабочего стола в папку,
где живет батник
3. Дальше можешь удалить иконку с рабочего стола
Должно сработать
И опыт ,сын ошибок трудных
И гений ,парадоксов друг

bzzz
- Сообщения: 517
- Зарегистрирован: 10 авг 2006, 17:42
- Откуда: От мамы с папой
Re: как закрыть cmd.exe после исполнения батника?
20 окт 2009, 17:23
Проблема в том, что бат-файл ожидает завершения процесса opera.exe. Мы же не запускаем оперу в отдельном процессе. Как только опера будет закрыта, окошко цмд само закроется.
Простейший способ – не извращаться с батниками, а засунуть две операции как две записи в автозагрузку.


padsel
- Сообщения: 3
- Зарегистрирован: 19 янв 2007, 19:30
Re: как закрыть cmd.exe после исполнения батника?
21 окт 2009, 04:18
ога, когда оперу закрываешь, и консоль закрывается
мне обидно, что я с простейшим батником справиться не могу
да не проблема другими способами запускать, я именно про батник спрашиваю
простой ведь вопрос
__________________________________________________________
На будущее – не надо писать подряд за самим собой. Есть кнопка правка.
У вас ещё одно сообщение будет проходить через премодерацию. Потому, будет видно только после одобрения модера.
Al_lexx
alikolalia
- Сообщения: 1
- Зарегистрирован: 01 апр 2010, 18:33
При работе с операционными системами Windows пользователям и системным администраторам довольно часто приходится использовать командную строку. Большинство из нас привыкло пользоваться графическим интерфейсом системы, а потому закрывает окно командной строки, используя мышь. Впрочем, закончив набирать команды, можно не отрывать рук от клавиатуры, и закрыть окно командной строки через EXIT.
У команды есть и второе предназначение — выход из текущего командного файла. Допустим, что в текущем окне командного интерпретатора у вас исполняется какой-то BAT-файл или CMD-файл. Если нужно выйти из него, не закрывая окно командной строки, это также можно сделать командой . Синтаксис и примеры ниже.
B — завершение текущего командного файла вместо завершения процесса CMD.EXE (закрытия окна командной строки). Если использовать вне пакетного файла-сценария, будет завершён процесс CMD.EXE;
exitCode — цифровой код, определяющий номер для ERRORLEVEL. Если произошло завершение работы CMD.EXE, то будет установлен код завершения процесса с данным номером.
Команда выше просто закроет окно командной строки.
Нередки ситуации, когда один командный файл вызывает другой командный файл. Предположим, что файл primer1.bat вызывает файл primer2.bat. Используя команду , мы вызовем закрытие файла primer2.bat, а также primer1.bat, после чего закроется и окно командной строки.
Чтобы этого не произошло, используем . Допустим, что файл primer1.bat вызывает primer2.bat и выводит на экран значение ERRORLEVEL, которое взято при выходе из primer2.bat:
Файл primer2.bat завершается командой с установкой значения ERRORLEVEL, равного 128:
Это приведёт к выводу следующего сообщения:
Batch file primer2.bat executed with ERRORLEVEL = 128
Как видите, польза команды не только в том, что она помогает закрывать окно командной строки без помощи мыши.
<!– Put this script tag to the of your page –>
EXIT
Формат командной строки:
Параметры командной строки:
/B – Предписывает завершить текущий пакетный файл-сценарий вместо завершения CMD.EXE. Если выполняется вне пакетного
файла-сценария, то будет завершена программа CMD.EXE
exitCode – Указывает цифровое значение. Если указан ключ /B, определяет номер для ERRORLEVEL. В случае завершения работы CMD.EXE, устанавливает код завершения процесс с данным номером.
Примеры использования команды EXIT
exit – завершить текущий сеанс CMD
Команда EXIT с параметрами используются, как правило, только в командных файлах.
Например, для индикации результата выполнения с установкой значения переменной среды ERRORLEVEL
Команды . . .
Команды . . .
REM установить ERRORLEVEL равный 0 и завершить работу
REM установить ERRORLEVEL равный 1 и завершить работу
Параметр /B используется в тех случаях, когда выполняется завершение командного файла, но необходимо продолжить работу командного процессора. Например, когда командный файл 1.bat вызывает командной CALL другой командный файл 2.bat, результат выполнения которого, характеризуется значением переменной окружения ERRORLEVEL. Если в вызываемом командном файле использовать команду EXIT без параметра /B, то будет завершена работа вызываемого файла 2.bat, а также вызывающего файла 1 .bat и интерпретатора CMD.EXE, т.е вместо выхода из вызываемого файла будет полностью завершен сеанс командной строки.
Простейший пример, когда командный
файл 1.bat вызывает на выполнение другой командный файл с именем
2.bat и выводит на экран значение ERRORLEVEL, установленное при
выходе из вызываемого файла:
Файл 2.bat завершается командой EXIT с установкой значения ERRORLEVEL,
равного 128:
exit /b 128
При выполнении командного файла 1.bat на экран будет выведено сообщение:
Batch file 2.bat executed with ERRORLEVEL = 128
Попробуйте убрать параметр /B в команде EXIT командного файла 2.bat и оцените полученный результат.
Весь список команд CMD Windows
Общие сведения о командном процессоре Windows.
Командные файлы (пакетные файлы, скрипты, сценарии, ”батники”) – это обычные текстовые файлы с расширением .bat или .cmd, строки которых представляют собой специальные команды командного процессора (интерпретатора команд ) и/или имена исполняемых файлов с параметрами. Командный процессор – это специальная программа, являющаяся обязательным элементом практически любой операционной системы, главным назначением которой, является предоставление пользователю возможности выполнения определенных программ без их компиляции и создания исполняемых файлов. Для операционных систем DOS и Windows9X в качестве интерпретатора команд использовался командный процессор command.com, для всех остальных ОС семейства Windows ( NT/2k/XP/Vista/7/8/10 и старше) – cmd.exe.
Несмотря на непрерывное совершенствование средств создания и выполнения сценариев с использованием объектно-ориентированных языков, обычная командная строка и простые командные файлы, по-прежнему остаются основным инструментом для выполнения рутинных действий, диагностики сетевых проблем, автоматизации процессов резервного копирования и т.п. При всех недостатках реализации командного процессора в Windows, он был и остается важнейшим инструментом администрирования, диагностики и управления системой.
Современная реализация командного процессора CMD кроме классического применения, позволяет также использовать возможности Инструментария управления Windows (WMI –Windows Management Instrumentation), сценарии Windows Script Host (WSH) и даже оболочки (shell) операционных систем Linux без установки стороннего программного обеспечения, поскольку в современных Windows, начиная с Windows 10, в качестве стандартного компонента системы может применяться Подсистема Windows для Linux (WSL – Windows Subsystem for Linux), что позволяет объединять в командных файлах исходные тексты CMD и, например, – bash.
Как уже упоминалось выше, командный файл – это обычный текстовый файл с набором команд, которые последовательно выполняются командным процессором CMD Windows (cmd.exe). Командный процессор последовательно считывает и выполняет команды, которые представляют собой своеобразную программу, реализующую определенный алгоритм. Естественно, как и в любой другой среде программирования, программирование в командной строке подчиняется определенным правилам и командные файлы должны им полностью соответствовать.
Как предотвратить автоматическое закрытие консоли после выполнения пакетного файла.
может кто подскажет, какую команду поставить в конце пакетного файла, чтобы предотвратить автоматическое закрытие консоли после выполнения файл?
ответов
в пакетных файлах Windows / DOS:
pauseэто печатает хороший "Press any key to continue . . . "
или, если вы не хотите, чтобы "Press any key to continue . . ." сообщение, сделайте это вместо этого:
pause >nulзависит от точного вопроса!
нормально pause работает в .летучая мышь!-Файл -6–>.
Если вы хотите cmd.exe чтобы не закрываться, чтобы иметь возможность оставаться набрав, используйте в конце файла.
если вы хотите cmd.exe, чтобы не закрывать и продолжать вводить, используйте
cmd /k
просто почувствовал необходимость пояснить, что /k делает (с веб-сайта windows):
/k: выполняет команду, указанную строкой, и продолжает.
так cmd /k без последующей команды в конце файла bat будет просто держать cmd.exe окно открытым для дальнейшего использования.
С другой стороны pause в конце пакетный файл просто приостановит процесс и завершит cmd.exe на первом нажатии кнопки
ниже способ наличия команд в пакетном файле откроет новые окна командной строки, и новые окна не будут выходить автоматически.
start "title" call abcd.exe param1 param2
start "title" call xyz.exe param1 param2добавить cmd.exe как новая строка под кодом, который вы хотите выполнить:
c:\Python27\python D:\code\simple_http_server.py
cmd.exeвызов cmd в конце пакетного файла.
мой способ-написать фактическую партию (говоря ” foo.bat”), чтобы закончить работу; затем создайте еще один “старт”.летучая мышь”:
@echo off
cmd /k foo.batЯ считаю, что это очень полезно, когда я настраиваю одноразовые переменные среды.
кроме того pause.
set /p=можно использовать .Он будет ожидать ввода пользователем и отпустит поток при нажатии enter.
runas /user:# "" >nul 2>&1который будет делать то же самое, за исключением того, что ничего из пользовательского ввода не будет отображаться и не останется в истории команд.
возможность 1:
Просто сделать 2 .bat файлы и записать в первый:
start <filename> // name of 2nd batch file
exitпакетный файл 2-это файл, который не будет закрыт в конце.
Итак, теперь, когда вы открываете пакет nr.1 он начнет 2-й и сам cloe.
Когда 2-й заканчивается, он не закроется полностью (до тех пор, пока вы не поставите выход в конце)
возможность 2:
Пакетного файла 1:
call <filename>
cls
echo End of file
pause
<any code you want>когда 2-й файл закончится, он снова перейдет к файлу 1 и выведет остальную его часть. С этим вы можете даже сделайте обработчики ошибок. Если nr.1 сбой он переходит в nr.2 и отображает его
этот маленький хак просит пользователя ввести ключ и сохраняет его в переменной %exitkey% (эта переменная может называться как угодно).
set /p exitkey= "Press any key to continue..."NB: пространство после ‘ = ‘ очень важно
pauseecho text to display
pause>nulесли вы используете Maven и вы хотите пропустить ввод и предотвратить консоль от близко, чтобы увидеть результат, который вам нужно использовать CALL команда в скрипте, кроме того, только “mvn clean install”.
как это закроет консоль
ECHO This is the wrong exemple
mvn clean install
pauseвот так консоль будет
ECHO This is the right exemple
CALL mvn clean install
pauseесли вы не используете CALL команда ни одно из прошлых исключений не будет работать.
есть два способа сделать это в зависимости от варианта использования
1) Если вы хотите, чтобы приглашение Windows cmd оставалось открытым, чтобы вы могли увидеть результат выполнения и закрыть его после этого; используйте
2) Если вы хотите, чтобы командная строка Windows cmd оставалась открытой и позволяла выполнять некоторые команды после слов; используйте

легко, добавьте cmd в последнюю строку bat, но! если вы сбросили или очистили системный путь, вы должны запустить cmd с полным путем, например:
%windir%\system32\cmd.exeнапример, у меня есть файл bat для сброса jdk в старую версию, например:
PATH=C:\Program Files\Java\jdk1.6.0_45\bin;C:\apache-ant-1.7.1\bin
SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45
%windir%\system32\cmd.exeпоскольку я сбросил системный путь, я должен запустить cmd с полным путем, или система не может найти cmd.exe, он не сможет запустить cmd и просто закрыть окно, и вы не увидите сообщение об ошибке.
Я знаю, что опоздал, но мой предпочтительный способ:
:programend
pause>nul
GOTO programendтаким образом, пользователь не может выйти с помощью enter.
Примеры командных файлов.
Использование утилит командной строки и командных файлов нередко позволяют
решить многие проблемы связанные с повседневной эксплуатацией компьютерной
техники. Большинство системных администраторов и грамотных пользователей
продолжают ими пользоваться, несмотря на то, что в Windows проявилось новое,
более мощное и современное средство управления системой – WMI
(Windows Management Instrumentation) и многофункциональная оболочка пользователя Power Shell. Очевидно, не в последнюю очередь, это
обусловлено простотой реализации и достаточной
эффективностью командной строки для решения повседневных задач обслуживания системы.
Ниже приведены простые
примеры с комментариями, которые демонстрируют некоторые возможности и
способы применения .cmd и .bat
Специальные символы CMD
Работа с командным процессором предполагает использование двух стандартных устройств – устройства ввода (клавиатура) и устройства вывода (дисплей). Однако, имеется возможность изменить стандартно используемые устройства ввода-вывода с помощью специальных символов – символов перенаправления
– перенаправление вывода
– перенаправление ввода
Для вывода справки не на экран а, например, в файл с именем help.txt, можно использовать следующую команду:
HELP > help.txt
При выполнении данной команды, в текущем каталоге будет создан файл с именем help.txt, содержимым которого будет результат вывода команды HELP. Если файл help.txt существовал на момент выполнения команды, его содержимое будет перезаписано. Для того, чтобы дописать данные в конец существующего файла, используют удвоение символа перенаправления вывода – “>>”
HELP GOTO > myhelp.txt – в файл myhelp.txt будет выдана справка по использованию команды GOTO
HELP COLOR >> myhelp.txt – в конец файла myhelp.txt будет дописана справка по использованию команды COLOR
Простейший пример перенаправления ввода:
cmd.exe < commands.txt – командный процессор не будет ожидать ввода команд с клавиатуры, а считает их из файла commands.txt. Фактически, указанный текстовый файл в данном случае является командным файлом.
При запуске командного процессора можно указать конкретную команду в качестве аргумента командной строки:
cmd.exe /C HELP FOR – выполнить команду HELP FOR и завершиться (параметр командной строки или ключ /C)
cmd.exe /K HELP FOR – выполнить команду HELP FOR и перейти в режим ожидания дальнейшего ввода команд (ключ /K)
Подробную справку по использованию cmd.exe можно получить, введя в качестве аргумента ключ /?
& – одиночный амперсанд используется для разделения нескольких команд в одной командной строке.
команда1 & команда2 – выполняется первая команда, затем вторая команда.
&& – удвоенный амперсанд между двумя командами, означающий условное выполнение второй команды. Она будет выполнена, если код завершения (или код возврата) первой команды равен нулю, т.е. команда выполнена успешно. Успешность
выполнения команды определяется значением специальной переменной среды ERRORLEVEL.
команда1 && команда2 – выполняется команда1, а команда2 выполняется, только если первая была выполнена успешно.
Команду, следующую после знаков объединения, не нужно заключать в
двойные кавычки, иначе командный процессор удвоит их и сообщит об ошибке.
Выполнение командной строки
cmd.exe /C “HELP IF” & ”HELP IF”
Завершится выполнением первой команды и сообщением об ошибке для второй:
“”HELP” не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Как и в любом другом языке программирования, в сценариях CMD невозможно обойтись без переменных. Для получения их значения применяется специальный символ – знак процента % . Строка, заключенная в знаки процента интерпретируется как значение переменной, например:
Символ ^ , являющийся последним символом строки, используется как признак продолжения предыдущей. Это относится как к тексту, так и к командам.
Создание архива, имя которого содержит дату и время.
Решим следующую задачу – нужно создать архив файлов, находящихся в каталоге
C:\Program Files\FAR. Имя архивного файла должно состоять из текущего времени
(часы.минуты.секунды – ЧЧ.ММ.СС.rar), и помещен он должен в новый каталог, имя которого должно состоять из текущей даты
(день.месяц.год – ДД.ММ.ГГГГ). Для архивирования будем использовать архиватор RAR.
Формат запуска для создания архива:
RAR a -r < путь и имя архива > < Путь и имя архивируемых данных >
a – команда создания архива.
-r – ключ, определяющий архивирование подкаталогов (т.к. в исходной папке есть подкаталоги).
Таким образом, для решения задачи нужно правильно создать имена и пути для RAR. Для чего
воспользуемся следующими исходными данными:
Причина в том, что при создании командных файлов вы
использовали текстовый редактор, в котором русские символы представлены
не в DOS-кодировке. Если в приведенном выше примере перезапуска службы “DNS-клиент”
вы используете неверную кодировку, то русская часть имени службы не будет опознана
из-за неверной кодировки и будет выдано сообщение, что указанная служба не
установлена. Чтобы избежать проблем с русскими символами в командных файлах,
используйте редактор с поддержкой DOS-кодировки, например, встроенный редактор
файлового менеджера Far Manager. Переключение между кодировками в редакторе осуществляется нажатием F8 . С помощью FAR можно легко осуществлять перекодировку, скопировав (вырезав) текст в буфер обмена, затем
нажав F8 и вставив текст из буфера.
Команды CMD
Строки командных файлов могут содержать как команды самого
процессора команд CMD, так и имена исполняемых модулей (программ или командных файлов).
– исполняемый файл ping.exe с параметром yandex.ru. Расширение .exe можно не указывать, и данная команда может быть записана так:
Список стандартных команд можно получить, введя команду:
Справочную информацию по конкретной команде можно получить, указав ее название в качестве параметра команды HELP:
HELP Имя команды
В русифицированной версии Windows необходимо учитывать, что в среде командного процессора символы национального алфавита отображаются в DOS-кодировке, в соответствии с кодовой страницей (code page) 866. При необходимости, для переключения между кодовыми страницами Windows и DOS используется команда
CHCP номер страницы
– использовать кодовую страницу 866 (DOS)
– использовать кодовую страницу 1251 (WINDOWS)
Внешний вид окна CMD.EXE (консоли Windows) можно изменить с помощью команды
В качестве аргументов для команды используются 2 шестнадцатеричные цифры, задающие цвет фона и цвет символа.
– символы белого цвета на черном фоне (используется по умолчанию).
– черные символы на белом фоне.
– светло-желтые символы на черном фоне.
– подсказка для команды COLOR.
Закрытие окна cmd после открытия VSCode с пакетным скриптом
Если у вас есть команда code, которая устанавливается вместе с VSCode, эта строка работает:
echo | code . | exit /bЕсли вы запускаете скрипт от имени администратора, вам нужно следующее:
cd /d %~dp0
echo | code . | exit /bИспользование start /b обычно позволяет закрыть окно cmd для других программ, но не в этом случае.
13 Сен 2022 в 08:07
Я делаю что-то вроде ниже
start ""
** code
exitЭто работа для меня
15 Янв 2022 в 02:12
Присвоение съемному диску одной и той же буквы.
Задача заключается в том, чтобы съемный USB диск (флэш диск) был доступен
всегда под одной и той же буквой, независимо от того, на каком компьютере он
используется и каким образом он был подключен. Для ее решения воспользуемся уже упоминаемой выше командой SUBST, но реализуем присвоение новой буквы диску с
помощью подстановочного значения переменной %0, создаваемой
системой при каждом запуске командного файла.
Выберем для съемного диска желаемую букву, например – X.
Некоторые из переменных окружения, в том числе и переменная %0,
принимающая значение пути и имени выполняющегося командного файла, позволяют
при определенной модификации с использованием специального признака –
символа ” ~ “, получить ее частичное значение (расширение переменной).
Например, не полный путь
файла, а только его имя, или каталог расположения, или букву диска, с
которого он был запущен или еще около десятка различных элементов, связанных
с подстановочными значениями переменной %0.
Дополнительное представление о подстановочных значениях
переменной %0 можно получить из командного файла следующего
содержания:
11 ответов
В зависимости от того, как вы выполняете команду, вы можете поставить /k после cmd, чтобы окно оставалось открытым.
cmd /k my_script.batТакже подойдет простое добавление cmd /k в конец вашего командного файла. Благодарим Луиджи Д’Амико, который написал об этом в комментариях ниже.
23 Июн 2020 в 22:17
Когда файл .bat запускается не из командной строки (например, двойной щелчок).
echo The echoed text
@pause
echo The echoed text
pause
echo The echoed text
cmd /k
echo The echoed text & pause
4 Фев 2020 в 11:42
Добавление pause в (Windows 7) в конец у меня не сработало
но добавление cmd /k перед моей командой сработало.
cmd /k gradlew cleanEclipse8 Дек 2017 в 02:20
start cmd /k сотворил для меня волшебство. Я фактически использовал его для подготовки приложения для телефонной связи Cordova, оно запускает команду, показывает результат и ждет, пока пользователь его закроет. Ниже приведен простой пример
start cmd /k echo Hello, World!Что я использовал в своем случае
start cmd /k cordova prepareУ вас даже может быть название для этого, используя
14 Ноя 2017 в 06:16
Если вы запускаете сценарий из командной строки, добавьте exit /b, чтобы CMD оставался открытым.
13 Апр 2017 в 17:03
В Windows добавьте «& Пауза» в конец вашей команды в файле.
2 Фев 2018 в 13:27
Я также был сбит с толку, почему мы добавляем cmd в начале, и мне было интересно, нужно ли мне сначала открывать командную строку. Что вам нужно сделать, так это ввести полную команду вместе с cmd /k. Например, предположим, что имя вашего командного файла – «my_command.bat», который запускает команду javac my_code.java, тогда код в вашем командном файле должен быть:
cmd /k javac my_code.javaТаким образом, в основном нет необходимости открывать командную строку в текущей папке и вводить указанную выше команду, но вы можете сохранить этот код непосредственно в своем командном файле и выполнить его напрямую.
17 Янв 2019 в 14:51
javac -d C:\xxx\lib\ -classpath C:\xxx\lib\ *.java
cmd cd C:\xxx\yourbat.batВторая команда не закрывает окно cmd. Важно то, что вы все еще можете вводить новую команду
10 Мар 2017 в 11:17
В качестве примечания, это также работает при запуске команды непосредственно из панели поиска в Windows.
Например Непосредственный запуск ipconfig закроет окно cmd сразу после выхода команды.

Использование cmd \k <command> не будет – именно это я и пытался сделать, когда нашел этот ответ.

25 Июн 2020 в 10:59
@echo off
ipconfig
@pauseИли вы также можете использовать:
cmd /k ipconfig4 Фев 2020 в 11:27
Поместите pause в конец вашего .BAT файла.
31 Июл 2013 в 00:49
Использование переменных окружения в командных файлах.
При работе с командными файлами невозможно обойтись без переменных окружения (environments) – переменных, значения которых определяют среду, в которой выполняются команда или пакетный файл. Часто их называют переменными среды. Значения, принимаемые этими переменными формируются при
загрузке Windows, регистрации пользователя в системе, старте или завершении
некоторых приложений, и, кроме того, могут быть заданы с помощью специальной
команды
SET переменная = значение
SETX переменная = значение
Первая присваивает значение переменной, действующее до завершения текущей сессии командной строки. Вторая – значение, действующее постоянно.
Как уже упоминалось выше, значение, присвоенное какой-либо переменной, доступно для обработки в командной строке или в командном файле с использованием ее имени, заключенного в знаки процента – % . Системные переменные позволяют получить сведения об аппаратной и программной среде, в которой выполняется командный файл, что позволяет реализовать его исполнение на разных компьютерах, независимо от их конкретной конфигурации и пользовательских настроек. Например, в командном файле используется вывод содержимого системного каталога C:\Windows :
DIR C:\Windows
Алгоритм, реализуемый данным командным файлом, будет прекрасно выполняться до тех пор пока не встретится компьютер с Windows установленной не на диск C:, а например, на D:. Чтобы этого не происходило, желательно использовать системную переменную WINDIR, принимающую значение пути системного каталога:
На практике, с помощью команды SET обычно задается и модифицируется путь поиска исполняемых программ
– переменная окружения PATH.
SET PATH=C:\Windows; C:\windows\system32
Данная команда определяет, что поиск исполняемых файлов будет выполняться в
каталоге C:\Windows и, если результат неуспешен, в
C:\windows\system32
При необходимости выполнить программу, например, myedit.exe, размещенную в
каталоге C:\NewProgs необходимо либо указать полный путь исполняемого файла, либо сделать текущим каталогом каталог с программой и использовать только его имя. Если в командной строке не задан полный путь, а только имя
исполняемого файла – myedit.exe
то сначала будет выполняться поиск файла myedit.exe в текущем каталоге, и если
он не будет найден – в каталогах, список которых определяется значением переменной
PATH. Символ ; является разделителем элементов в списке путей поиска.
Если в приведенном примере, текущим каталогом не является
C:\NewProgs, и в остальных каталогах, заданных значением переменной
PATH, нет исполняемого файла myedit.exe, то попытка его запуска
завершится ошибкой. Однако, если модифицировать значение переменной PATH, добавив в нее требующийся каталог, то указание полного пути исполняемого файла становится необязательным.
Команда
изменит текущее значение PATH,
добавив каталог C:\NewProgs в начало списка. Для добавления каталога в конец списка используется несколько иная конструкция:
SET PATH=%path%; C:\NewProgs
Выполнение команды SET без параметров позволяет получить текущие
значения переменных окружения:
NUMBER_OF_PROCESSORS=1 – количество процессоров
OS=Windows_NT- тип ОС
Path=C:\WINDOWS\system32; C:\WINDOWS;C:\Program Files\Far – путь поиска исполняемых файлов.
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE; .JS;.JSE;.WSF;.WSH – расширения для исполняемых файлов.
PROCESSOR_ARCHITECTURE=x86 – архитектура процессора.
PROCESSOR_IDENTIFIER=x86 Family 6 Model 8 Stepping 1, AuthenticAMD – идентификатор процессора.
PROCESSOR_LEVEL=6 – уровень (номер модели) процессора.
PROCESSOR_REVISION =0801 – версия процессора.
ProgramFiles=C:\Program Files – путь к папке “Program Files”
PROMPT=$P$G – формат приглашения командной строки $P – путь для текущего каталога $G – знак “>”.
SystemDrive=C: – буква системного диска.
SystemRoot= C:\WINDOWS – каталог ОС Windows.
Значения некоторых переменных по команде SET не отображаются, хотя и присутствуют в системе. В основном, это переменные, принимаемые значения которых динамически изменяются:
%CD% – Принимает значение строки текущего каталога.
%DATE% – Принимает значение текущей даты.
%TIME% – Принимает значение текущего времени.
%RANDOM% – Принимает значение случайного десятичного числа в диапазоне 1 -32767.
%ERRORLEVEL% – Принимает текущее значение кода завершения задачи ERRORLEVEL
%CMDEXTVERSION% – Принимает значение версии командного процессора CMD.EXE для расширенной обработки команд.
%CMDCMDLINE% – Принимает значение строки, которая вызвала
командный процессор.
Значения, принимаемые переменными окружения, могут быть расширены с помощью
специального признака – символа ” ~ “, что позволяет получить их частичное
значение, или изменить его подменой какой-либо части. Практические примеры использования расширений переменных будут рассмотрены ниже.
Подробное описание команд с примерами их использования имеется в разделе Список команд CMD Windows.
6 ответов
он должен автоматически закрываться, если это не означает, что он застрял в первой команде.
в вашем примере он должен закрываться автоматически (без exit) или явно с exit. Я думаю, что проблема заключается в том, что первая команда, которую вы запускаете, не возвращается должным образом.
также вы можете попробовать использовать
start "" tncserver.exe C:\Work -p4 -b57600 -r -cFE -tTNC426Bваш код абсолютно в порядке. Ему просто нужен “выход 0” для более чистого выхода.
tncserver.exe C:\Work -p4 -b57600 -r -cFE -tTNC426B exit 0%запущена программа или команда% /taskkill /F / IM cmd.exe
Блокнот.exe /taskkill /f / IM cmd.exe
добавил start и exit который работает. Без него не работает
start C:/Anaconda3/Library/bin/pyrcc4.exe -py3 {path}/Resourses.qrc -{path}/Resourses_rc.py
exitЕсли вам нужно выполнить только одну команду самостоятельно и не нужно ждать, вы должны попробовать “cmd / c”, это работает для меня!
cmd /c start iexplore "http://your/url.html"cmd / c означает выполнение команды, а затем выход.
вы можете узнать функции ваших коммутаторов, введя в командной строке
anycmd /?использовал это для запуска Xming, поместил файл bat в каталог Start->Startup, и теперь у меня есть xming работает при запуске.
start "" "C:\Program Files (x86)\Xming\Xming.exe" -screen 0 -clipboard -multiwindowПередача параметров командному файлу.
Очень полезной особенностью работы с командными файлами является
возможность получать значения параметров командной строки и использовать их
в операциях внутри самого командного файла.
params.bat FIRST second “two words”
Параметры командной строки, содержащие пробелы должны заключаться в двойные кавычки.
При обработке входных параметров необходимо знать, были ли они вообще заданы в командной строке. Для проверки наличия каких-либо входных параметров, передаваемых
командному файлу, можно проверить, является ли значение переменной %1
пустым, что можно сделать, заключив ее, например в двойные кавычки, и проверив полученный результат на наличие этих кавычек, следующих подряд:
REM пробел текст
Строки, начинающиеся с REM пробел, считаются комментариями и командным процессором игнорируются.
Своя команда для создания новых файлов.
В составе операционной системы Windows нет специальной команды для создания нового файла, но без нее можно легко обойтись несколькими способами:
Копирование с клавиатуры в файл
COPY CON myfile.txt
При выполнении этой команды данные с клавиатуры (стандартное устройство CON – консоль) будут заноситься в файл myfile.txt текущего каталога. Нажатие клавиши F6 или комбинации CTRL-Z завершит вывод.
При выполнении этой команды будет создан файл myfile.txt, содержащий символ “1”
Комбинация перенаправления ввода и перенаправления вывода:
COPY CON > myfile.txt < xyz
При выполнении этой команды, как и в первом случае, используется копирование
с консоли в файл, но вместо ручного ввода данных с клавиатуры используется ввод с
несуществующего файла (устройства) xyz. Система выдаст сообщение, о том, что такого
устройства или файла
не существует, но пустой файл myfile.txt будет успешно создан.
Обычно, для создания пустого файла используется команда копирования из фиктивного устройства nul в файл. Использование устройства nul позволяет обойти стандартные операции ввода-вывода, которые для него реально не выполняются. При выполнении копирования с фиктивного устройства в файл будет создан пустой файл без каких-либо сообщений об ошибке.
COPY NUL myfile.txt
При работе в командной строке часто приходится создавать новые пустые
файлы, поэтому, стоит подготовить свой командный файл (например, с
именем nf.bat),
а имя нового создаваемого файла передавать ему в качестве параметра при
запуске.
Для удобства использования, можно поместить этот командный файл в системный каталог
(например, в C:\windows\system32) или любой другой, существующий в путях
поиска, задаваемых значением переменной PATH). Теперь, в командной строке, находясь в любом каталоге можно одной командой создавать пустые файлы.
Возможность создания файлов в системных каталогах зависит от настроек безопасности системы и прав пользователя, в контексте учетной записи которого выполняется команда. Многие команды могут быть выполнены только пользователем с правами администратора.
Расширение командного файла (.bat) можно не набирать и команда еще больше упрощается:
В тексте командного файла присутствует проверка, задано ли имя
создаваемого файла в командной строке (if “%1%” EQU “” goto error), и если не
задано – выводится сообщение об ошибке и командный файл завершает
свою работу.
В плане совершенствования функционала, можно добавить в этот командный файл проверку
на существование файла с именем, указанным в командной строке и предупреждением пользователя о его возможной перезаписи.
12 ответов
Измените пакетный файл на START обе программы вместо START одной и CALL другой
start C:\Users\Yiwei\Downloads\putty.exe -load "MathCS-labMachine1"
start "" "C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindowЕсли вы запустите его таким образом, ни одно окно CMD не останется открытым после запуска программы.
10 Фев 2013 в 08:12
Вы можете попробовать несколько опасный: taskkill /IM cmd.exe ..dangerous bcz, который убьет открытый cmd и любой другой cmd, открытый до него.
Или добавьте подтверждение, чтобы подтвердить, что у вас есть правильный cmd.exe, а затем убейте его через PID, например:
set loc=%time%%random%
title=%loc%
for /f "tokens=2 delims= " %%A in ('tasklist /v ^| findstr /i "%loc%"') do (taskkill /PID %%A) Замените (pslist &&A) или (tasklist /FI "PID eq %%A") на (taskkill /PID %%A), если вы хотите сначала проверить это (и, возможно, у вас установлены pstools).
26 Авг 2014 в 23:58
Просто попробуйте /s, как указано ниже.
В качестве последней строки в типе пакетного файла:
exit /sПриведенная выше команда закроет окно Windows CMD.
/s – означает беззвучный режим как in (ожидание ввода с клавиатуры).
7 Дек 2019 в 01:31
Это работает для меня
cd "C:\Program Files\SmartBear\SoapUI-5.6.0\bin"
start SoapUI-5.6.0.exe -w "C:\DATA\SoapUi\Workspaces\Production-workspace.xml"
exit13 Янв 2021 в 11:40
Иногда вы можете ссылаться на «ярлык» Windows для запуска приложения вместо использования «.bat» -файла, и у него не будет остаточной проблемы с запросом. Но он не такой гибкий, как файлы bat.
11 Фев 2021 в 05:12
Обычно вы заканчиваете командный файл строкой, в которой просто написано exit. Если вы хотите убедиться, что файл запущен и окно DOS закрывается через 2 секунды, вы можете добавить строки:
timeout 2 >nul
exitНо команда exit не будет работать, если ваш командный файл открывает другое окно, потому что, хотя второе окно открыто, старое окно DOS также будет отображаться.
РЕШЕНИЕ: Например, есть небольшая отличная бесплатная программа под названием BgInfo , которая отображает всю информацию о вашем компьютере. Предполагая, что он находится в каталоге с именем C:\BgInfo, чтобы запустить его из командного файла с переключателем /popup и закрыть окно DOS, пока оно все еще работает, используйте:
start "" "C:\BgInfo\BgInfo.exe" /popup
exit14 Сен 2019 в 20:42
Если вы хотите разделить команды на одну команду для каждого файла, вы можете сделать
cmd /c start C:\Users\Yiwei\Downloads\putty.exe -load "MathCS-labMachine1"А в другом файле вы можете сделать
cmd /c start "" "C:\Program Files (x86)\Xming\Xming.exe" :0 -clipboard -multiwindowКоманда cmd / c закроет окно командной строки после запуска exe.
30 Окт 2017 в 23:31
Это сработало для меня. Я просто хотел автоматически закрыть командное окно после выхода из игры. Я просто дважды щелкаю файл .bat на своем рабочем столе. Никаких ярлыков.
taskkill /f /IM explorer.exe
C:\"GOG Games"\Starcraft\Starcraft.exe
start explorer.exe
exit /B15 Фев 2016 в 10:28
Чтобы немедленно закрыть текущие окна cmd, просто добавьте в последнюю команду / строку:
move nul 2>&0Попробуйте переместить nul в никуда и перенаправить stderr на stdin приведет к закрытию текущего окна cmd.exe
Это отличается от закрытия летучей мыши или выхода из нее с помощью goto :EOF или Exit /b
Я даже задал вопрос, чтобы найти ответ, который объяснил бы поведение. Будет ли это ошибка? Немедленное закрытие текущего окна cmd при выполнении: move nul 2> & 0
18 Мар 2021 в 21:49
У меня было это, я добавил EXIT, и сначала это не сработало, я полагаю, из-за того, что требовался совет called program exiting, упомянутый в другом ответе здесь, однако теперь он работает без лишних слов – не уверен, что это вызвало, но следует отметить, что я вызываю файл данных .html, а не программу, которая его обрабатывает browser.exe, я ничего не редактировал, но достаточно сказать, что это намного удобнее, просто используя летучую мышь файл для доступа к основным страницам доступа этих веб-документов и наличие только title.bat, contents.bat, index.bat в корневой папке с остальным содержимым во вложенной папке.
То есть: contents.bat читает
cd subfolder
"contents.html"
exitТакже будет лучше, если я изменю значки файлов летучей мыши только для этих элементов, чтобы они соответствовали контексту, в котором они находятся, но это другое дело, скрывая файлы летучей мыши во вложенной папке и создавая для них пользовательские ярлыки значков в корневой папке с изображениями. призывал к настройке также скрыт.
1 Июл 2014 в 17:06
Переходы и метки.
В командных файлах можно использовать команды условного перехода,
меняющие логику их работы в зависимости от возникновения определенных условий.
В качестве примера создадим командный
файл, целью которого будет присвоение заранее определенной буквы для
съемных носителей.
Исходные данные: имеется 2 съемных диска, один из которых должен быть виден в проводнике как диск X: , а второй – как диск Y: независимо от того, в какой порт USB они подключены и какие буквы присвоены им операционной системой. Для назначения букв дискам можно воспользоваться командой SUBST.
Будем считать, что реальные диски могут быть подключены как F: или G:
Опознавание дисков будем выполнять по наличию файла с определенным именем
(лучше всего такой файл сделать скрытым в корневом каталоге съемного диска и назвать его как-нибудь необычно):
Flashd1.let – на первом диске
Flashd2.let – на втором
Таким образом, задача командного файла заключается в том, чтобы проверить
наличие на сменных дисках F: и G: файлов Flashd1.let
или Flashd2.let и, в зависимости от того, какой из них присутствует,
присвоить диску букву X: или Y:
Для поиска файла на диске воспользуемся командой :
IF EXIST имя_файла команда
В качестве команды, которая будет выполнена при удовлетворении условия используем , которая предназначена для сопоставления каталога и виртуального диска.
SUBST X: C:\ – – создать виртуальный диск
X:, содержимым которого будет корневой каталог диска C:
Для решения поставленной задачи, создаем командный файл, например с именем setletter.bat, следующего содержания:
setletter.bat
В качестве метки используется строка символов, начинающаяся
с двоеточия. Сделаем изменения в нашем командном файле, чтобы не возникало
сообщений об ошибке:
При выполнении измененного таким образом командного файла, сообщение об
ошибке при выполнении SUBST исчезнет.
Конечно, данный пример очень примитивен, но главная его цель заключается не в написание оптимального командного сценария, а в демонстрации принципов использования меток и переходов. Во всех последующих примерах, насколько это возможно, используется именно такой подход – важна не оптимальность исходного текста, а его максимальная простота для понимания.
Одним из важнейших приемов при написании сложных командных файлов
является анализ успешности выполнения конкретной команды или программы.
Признаки ошибок при выполнении команд можно отслеживать, анализируя
специальную переменную ,
значение которой формируется при завершении работы большинства программ.
Обычно ERRORLEVEL равно нулю, если программа завершилась без ошибок и
единице – при возникновении ошибки. Могут быть и другие значения, если они
предусмотрены в выполняемой программе.
В качестве команды в строке командного файла можно использовать также
командный файл. Причем, для передачи с возвратом обратно к точке выполнения
вызывающего командного файла используется
команда CALL. Попробуйте создать командный файл test.bat, следующего содержания:
– приостановить выполнение командного файла до
нажатия любой клавиши.
Если же в файле test.bat убрать CALL, оставив “1.bat”, то , выполнится командный файл 1.bat, и возврат в test.bat выполняться не будет.
Вызываемый командный файл может создавать переменные и присваивать им
определенные значения, которые будут доступны для обработки в вызывающем
файле. Попробуйте изменить файл test.bat следующим образом:
Переменные вызываемого файла будут доступны в вызывающем файле.
Кстати, используя передачу управления командному файлу, можно организовать
его зацикливание. Попробуйте добавить в конец файла test.bat строку:
Выйти из зацикливания командного файла можно по нажатию комбинации
CTRL+Break.
Команда CALL может использоваться не только для вызова другого командного файла, но и для вызова внутренней подпрограммы. В этом случае в качестве аргумента используется не имя внешнего файла, а метка:


