Как автоматически закрыть окно cmd после выполнения пакетного файла?
Я запускаю пакетный файл с двумя строками:
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 останется открытым. Только если я уже запустил Xming, окно cmd закрывается, когда я закрываю терминал PuTTY. Я попытался добавить exit
в последнюю строку командного файла, но безрезультатно.
Ответы
Ответ 1
Измените командный файл на 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-окно не останется открытым.
Ответ 2
Для новичков: -
- Обычно вы заканчиваете командный файл с строкой, которая просто говорит exit
* Если вы хотите убедиться, что файл запущен, и для закрытия окна DOS через 2 секунды вы можете добавить строки:
таймаут 2 > nul
Выход
- Но... команда exit не будет работать, если ваш пакетный файл откроет другое окно - потому что, хотя второе окно открыто, также будет показано старое окно DOS.
РЕШЕНИЕ: Например, там есть небольшой бесплатный прогейм под названием BgInfo, который отобразит всю информацию о вашем компьютере. Предположим, что это в каталоге C:\BgInfo. Чтобы запустить его из пакетного файла с помощью переключателя "/popup"..... И для того, чтобы окно DOS закрывалось после этого, пока оно все еще выполняется, используйте:
start "" C:\BgInfo\BgInfo.exe"/popup
Выход
Ответ 3
Это сработало для меня. Я просто хотел закрыть окно команды автоматически после выхода из игры. Я просто дважды нажимаю на .bat файл на своем рабочем столе. Нет ярлыков.
taskkill /f /IM explorer.exe
C:\"GOG Games"\Starcraft\Starcraft.exe
start explorer.exe
exit /B
Ответ 4
Добавьте этот код в конце кода выполнения
C:\Windows> выход
Ответ 5
Вы можете попробовать несколько опасное: 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).
Ответ 6
Если вы хотите разделить команды на одну команду на файл, вы можете сделать
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.
Ответ 7
У меня та же проблема с разными вызовами в командном файле. У меня есть командный файл, который содержит следующие строки:
начать/подождать abaqus cae noGUI = "c:\temp\Code1.py" cmd/c EXIT 0
Этот пакетный файл вызывается из кода Фортрана. После вызова он открывает командное окно и запускает Code1.py. Поскольку он не закрывает командное окно, код Fortran, который вызвал этот командный файл, приостанавливает операцию, пока я не закрою командное окно вручную. Я был бы очень признателен, если бы кто-нибудь мог мне помочь с этим.
Ответ 8
У меня было это, я добавил EXIT
, и изначально это не сработало, я полагаю, что каждый из них требует совета called program exiting
, упомянутого в другом ответе здесь, однако теперь он работает без лишнего шума - не уверен, что вызвало это, но следует отметить, что я вызываю файл данных .html
, а не программу, которая обрабатывает его browser.exe
, я ничего не редактировал, но достаточно сказать, что он очень аккуратный, просто используя файл bat для доступа к основному доступ к страницам этих веб-документов и только наличие title.bat
, contents.bat
, index.bat
в корневой папке с остальной частью содержимого во вложенной папке.
i.e.: contents.bat читает
cd subfolder
"contents.html"
exit
Это также выглядит лучше, если я изменяю значки файла bat только для этих элементов в соответствии с контекстом, в котором они находятся, но это другое дело, скрывая файлы bat во вложенной папке и создавая специальные ярлыки для них в корневой папке с изображениями, вызываемыми для настройки, также скрытыми.