Bat как закрыть окно
Перейти к содержимому

Bat как закрыть окно

Как автоматически закрыть окно cmd после выполнения командного файла?

Я запускаю командный файл, в котором есть эти две строки:

Этот командный файл используется для запуска приложения Xming, а затем приложения PuTTY, поэтому я могу подключиться по SSH к компьютерной лаборатории моего университета.

Однако, если я запустил это, а Xming еще не открыт, после выхода из терминала PuTTY окно cmd останется открытым. Окно cmd закрывается, только если я уже запустил Xming, когда я закрываю терминал PuTTY. Я пробовал добавить exit в последнюю строку командного файла, но безуспешно.

10 ответов

Измените пакетный файл на START обе программы вместо START одной и CALL другой

Если вы запустите его таким образом, ни одно окно CMD не останется открытым после запуска программы.

Иногда вы можете ссылаться на «ярлык» Windows для запуска приложения вместо использования «.bat» -файла, и у него не будет остаточной проблемы с запросом. Но он не такой гибкий, как файлы bat.

Это работает для меня

Просто попробуйте /s , как указано ниже.

В качестве последней строки в типе пакетного файла:

Приведенная выше команда закроет окно Windows CMD.

/s — означает беззвучный режим как in (ожидание ввода с клавиатуры).

Вы можете попробовать несколько опасный: taskkill /IM cmd.exe ..dangerous bcz, который убьет открытый cmd и любой другой cmd, открытый до него.

Или добавьте проверку, чтобы подтвердить, что у вас есть правильный cmd.exe, а затем убейте его через PID, например:

Замените (pslist &&A) или (tasklist /FI «PID eq %%A») на (taskkill /PID %%A) , если вы хотите сначала проверить это (и, возможно, у вас установлены pstools).

У меня было это, я добавил EXIT , и сначала это не сработало, я полагаю, из-за того, что требовался совет called program exiting , упомянутый в другом ответе здесь, однако теперь он работает без лишних слов — не уверен, что это вызвало, но следует отметить, что я вызываю файл данных .html , а не программу, которая его обрабатывает browser.exe , я ничего не редактировал, но достаточно сказать, что это намного удобнее, просто используя летучую мышь файл для доступа к основным страницам доступа этих веб-документов и наличие только title.bat , contents.bat , index.bat в корневой папке с остальным содержимым во вложенной папке.

То есть: contents.bat читает

Также будет лучше, если я изменю значки файлов летучей мыши только для этих элементов, чтобы они соответствовали контексту, в котором они находятся, но это другое дело, скрывая файлы летучей мыши во вложенной папке и создавая для них пользовательские ярлыки значков в корневой папке с изображениями. потребовал настройки, также скрытые.

Чтобы немедленно закрыть текущие окна cmd, просто добавьте в последнюю команду / строку:

Попробуйте переместить nul в никуда и перенаправить stderr на stdin приведет к закрытию текущего окна cmd.exe

Это отличается от закрытия летучей мыши или выхода из нее с помощью goto :EOF или Exit /b

Я даже задал вопрос, чтобы найти ответ, который объяснил бы поведение. Будет ли это ошибка? Немедленное закрытие текущего окна cmd при выполнении: move nul 2> & 0

Это сработало для меня. Я просто хотел автоматически закрыть командное окно после выхода из игры. Я просто дважды щелкаю файл .bat на своем рабочем столе. Никаких ярлыков.

Если вы хотите разделить команды на одну команду для каждого файла, вы можете сделать

А в другом файле вы можете сделать

Команда cmd / c закроет окно командной строки после запуска exe.

Обычно вы заканчиваете командный файл строкой, в которой просто написано exit . Если вы хотите убедиться, что файл запущен и окно DOS закрывается через 2 секунды, вы можете добавить строки:

Но команда exit не будет работать, если ваш командный файл открывает другое окно, потому что, когда второе окно открыто, старое окно DOS также будет отображаться.

РЕШЕНИЕ: Например, есть небольшая отличная бесплатная программа под названием BgInfo , которая отображает всю информацию о вашем компьютере. Предполагая, что он находится в каталоге с именем C:\BgInfo , чтобы запустить его из командного файла с переключателем /popup и закрыть окно DOS, пока оно все еще работает, используйте:

Как закрыть окно командной строки после запуска пакетного файла?

у меня есть пакетный файл. После его завершения, т. е. все командные строки были выполнены,cmd.exe окно остается открытым. Тем не менее, я хотел бы закрыть его сразу после завершения работы пакетного файла.

до сих пор я пробовал использовать exit команда в пакетном файле, чтобы закрыть окно cmd (у меня также есть ярлык на рабочем столе), но она, похоже, не работает:

6 ответов

он должен автоматически закрываться, если это не означает, что он застрял в первой команде.

в вашем примере он должен закрываться автоматически (без exit ) или явно с exit . Я думаю, что проблема заключается в том, что первая команда, которую вы запускаете, не возвращается должным образом.

также вы можете попробовать использовать

ваш код абсолютно в порядке. Ему просто нужен «выход 0» для более чистого выхода.

%запущена программа или команда% /taskkill /F / IM cmd.exe

пример:

Блокнот.exe /taskkill /f / IM cmd.exe

добавил start и exit который работает. Без него не работает

Если вам нужно выполнить только одну команду самостоятельно и не нужно ждать, вы должны попробовать «cmd / c», это работает для меня!

cmd / c означает выполнение команды, а затем выход.

вы можете узнать функции ваших коммутаторов, введя в командной строке

использовал это для запуска Xming, поместил файл bat в каталог Start->Startup, и теперь у меня есть xming работает при запуске.

Как закрыть активное окно файлом, например .bat

Подобным образом можно закрывать и неактивные окна по их заголовку (или по части заголовка) .
Например для Блокнота первую строку для .bat-файла нужно переписать так:

echo With CreateObject(«WScript.Shell»):.AppActivate «Блокнот»:.SendKeys «%%«:End With > «%Temp%\f4.vbs»

Для .vbs-файла это будет вглядеть следующим образом:

With CreateObject(«WScript.Shell»)
.AppActivate «Блокнот»
.SendKeys «%»
End With

Никак с помощью BAT.

С помощью PureBasic можно сделать. http://files.mail.ru/XXFL1H
Вот так.

hWnd = GetForegroundWindow_()
SendMessage_(hWnd, #WM_CLOSE, 0, 0)
SendMessage_(hWnd, #WM_DESTROY, 0, 0)
End

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *