Пакетный скрипт для закрытия всех открытых окон командной строки

У меня есть файл .cmd, который я вызываю, чтобы открыть несколько экземпляров Command Prompt через:

launcher.cmd -fs
launcher.cmd -tds
launcher.cmd -fsd

Каждая команда открывает новую командную строку.

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


person Adel Boutros    schedule 29.12.2011    source источник


Ответы (3)


Будьте осторожны: вы можете убить больше процессов, чем хотите:

taskkill /IM cmd.exe

Вы можете добавить дополнительные фильтры:

taskkill /IM cmd.exe /FI "WINDOWTITLE eq launcher*"

использовать

tasklist /FI "imagename eq cmd.exe " /V

чтобы получить представление о том, какие процессы cmd.exe будут отключены

Вы можете добавить параметр /F, чтобы принудительно закрыть процесс, но я бы использовал его только в том случае, если процесс не отвечает на обычный запрос.

person rene    schedule 29.12.2011
comment
taskkill похож на Ctrl + C ? - person Adel Boutros; 29.12.2011
comment
Фильтр WINDOWTITLE у меня не работает. Я получаю следующую ошибку: Информация: ни одна задача в обслуживании не соответствует указанным критериям. - person Adel Boutros; 29.12.2011
comment
Какой заголовок окна при запуске launcher.cmd? Вы можете использовать команду запуска TITLE в cmd, чтобы явно установить заголовок окна (в данном случае для запуска). Taskkill не похож на ctrl+c, потому что ctrl+c завершает скрипт контролируемым образом, taskkill просто дает указание операционной системе прекратить выполнение и выгрузить конкретный процесс любым способом, не беспокоясь о том, что этот процесс делает. - person rene; 29.12.2011
comment
Я использовал команду title bla. затем я набрал C:\Windows\System32\taskkill.exe /IM cmd.exe /FI WINDOWTITLE eq bla*, но получил эту ошибку - person Adel Boutros; 29.12.2011
comment
Убедитесь, что некоторые из ваших файлов launcher.cmd запущены, затем запустите список задач /FI imagename eq cmd.exe /v, чтобы увидеть, какой заголовок окна у вашего файла launcher.cmd. - person rene; 29.12.2011
comment
Чтобы уточнить ответ Ренеса: заголовок окна меняется на долю секунды после ввода другой команды, которая затем отображается в списке задач. Попробуйте запустить title abc. Затем откройте другой cmd и введите список задач /FI imagename eq cmd.exe /v - person JoschJava; 04.09.2019

Небольшое примечание, почему принятый ответ от Рене может не сработать. Я запускал свои приложения из файла cmd, например

start "" my.exe -my -args

где my.exe было консольным приложением, и оно выглядело как окно cmd, которое я хотел убить, но имя процесса не было cmd.exe (!), и мне пришлось использовать команду вроде

taskkill /IM my.exe

Поэтому в некоторых случаях стоит проверить реальное имя процесса, например, в диспетчере задач Windows.

person sarh    schedule 10.02.2021

TASKKILL /F /IM cmd.exe /T 

хорошее решение

person ant    schedule 06.06.2014