Подтвердить что ты не робот

Как автоматически закрыть окно 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 в последнюю строку командного файла, но безрезультатно.

4b9b3361

Ответ 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 во вложенной папке и создавая специальные ярлыки для них в корневой папке с изображениями, вызываемыми для настройки, также скрытыми.