Я пытаюсь сделать пакетный файл, а часть его завершает все необходимые процессы, кроме cmd и chrome. До сих пор у меня есть:Пакетное уничтожение всех процессов, кроме non essential и cmd
cd c:\windows\System32
for /f "skip=3 tokens=1" %%i in ('TASKLIST /FI "USERNAME eq %userdomain%\%username%" /FI "STATUS eq running"') do (
if not "%%i"=="cmd.exe" (
if not "%%i"=="C:\Windows\system32\cmd.exe" (
if not "%%i"=="svchost.exe" (
if not "%%i"=="tasklist.exe" (
if not "%%i"=="fun.bat" (
if not "%%i"=="mine.vbs" (
if not "%%i"=="chrome.exe" (
taskkill /f /im "%%i"
))))))))
(взято из http://agnipulse.com/2009/02/kill-all-running-apps-with-a-double-click/ затем слегка eddited)
и все это работает, кроме if not "%%i"=="cmd.exe" (
по какой-то причине терминал выходит, даже если он не должен. Может ли кто-нибудь сказать, почему и как исправить это или по-другому прекратить все не существенные процессы?
редактировать: Кроме того, если я добавить pause
до конца он никогда не получает, что так я теперь думать, что программа убивает свой собственный процесс до его завершения остальной части программы, даже если cmd.exe
находится в списке исключений. кто-нибудь думает, что это может быть проблемой и любыми идеями о том, как это исправить?
Отсутствует/d в cd c: \ windows \ system32. То, как у вас есть это, будет просто использовать th-каталог, на который указывает cmd. Используйте cd/d c: \ windows \ system32 и посмотрите, помогает ли это. –
попробовал, чтобы разница не выходила из терминала – club998
Внимательно проверьте вывод 'TASKLIST ...'. Здесь я могу увидеть 'explorer.exe'. Убийство убивает оболочку Windows. Запустите 'explorer.exe' в конце вашего скрипта. – JosefZ