TASKLIST
не устанавливает errorlevel.
echo off
tasklist /fi "imagename eq notepad.exe" |find ":" > nul
if errorlevel 1 taskkill /f /im "notepad.exe"
exit
должен делать эту работу, так как «:» должен появиться в TASKLIST
выходе только в том случае, если задача не найдена, значит FIND
установит ErrorLevel в 0
для not found
и 1
для found
Тем не менее,
Taskkill/ж/им «notepad.exe»
убьёт задачу блокнота, если он существует - он не может ничего сделать, если нет блокнота задача существует, так что вам не нужно, чтобы проверить - если не что-то, что вы хотите сделать ... как, возможно,
echo off
tasklist /fi "imagename eq notepad.exe" |find ":" > nul
if errorlevel 1 taskkill /f /im "notepad.exe"&exit
, которые, казалось бы, как ты просишь - убить процесс блокнота, если он существует, затем выйти - в противном случае продолжить с пакетом
Почему вы не вызываете 'taskkill', не проверяя, существует ли задача? –
'taskkill' не меняет errorlevel для меня ... – user2033427
@Andriy M Я хочу проверить, существует ли процесс. затем завершите процесс или закройте себя. – user2176930