3

Иногда Visual Studio оставляет программы запущенными после того, как они должны были закрыться (и даже после того, как Visual Studio закрылась). Эти программы не отображаются на панели задач или в alt-tab, когда они находятся в этом "призрачном состоянии". Само по себе это не было бы слишком ужасно, но я запускаю программы с внешнего диска и мне нужно закрыть их, чтобы извлечь указанный диск. Что еще хуже, я не могу открыть диспетчер задач (он заблокирован групповой политикой).

В настоящее время я использую команду tasklist чтобы вручную проверить такие программы, а затем taskkill чтобы закрыть их. Тем не менее, это боль, так как ее легко пропустить. Я видел переключатель taskkill /fi но не смог заставить его работать.

Примером программы с таким именем, которую я хотел бы закрыть, является Program1.vshost.exe .

Вкратце: как я могу легко закрыть все программы, имена которых заканчиваются на ".vshost.exe"?

2 ответа2

4

Эта команда может помочь:

for /F "tokens=1-3" %G in ('tasklist^|find /I ".vshost.exe"') do @echo %G %H %I

Если выходные данные соответствуют вашим критериям, замените @echo %G %H %I на taskkill /PID %H /T или что-то подобное.

Примечание: знак % должен быть удвоен при использовании в пакетном скрипте: используйте %%G вместо %G , %%H вместо %H и т.д.

1
taskkill /f /fi "imagename eq *.vshost.exe"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .