TASKLIST
non imposta errorlevel.
echo off
tasklist /fi "imagename eq notepad.exe" |find ":" > nul
if errorlevel 1 taskkill /f /im "notepad.exe"
exit
dovrebbe fare il lavoro, dal momento che ":" dovrebbe apparire in TASKLIST
uscita solo se l'operazione non viene trovato, quindi FIND
sarà impostare l'errorlevel per 0
per not found
e 1
per found
Tuttavia,
taskkill/f/im "notepad.exe"
uccide un compito blocco note se esiste - si può fare nulla se non il blocchetto per appunti esiste compito, in modo da non ha realmente bisogno di testare - a meno che non ci sia qualcos'altro che vuoi fare ... come forse
echo off
tasklist /fi "imagename eq notepad.exe" |find ":" > nul
if errorlevel 1 taskkill /f /im "notepad.exe"&exit
che sembrerebbe di fare come si chiede - uccidere il processo notepad se esiste, quindi esci - altrimenti continua con il lotto
Perché non si chiama 'taskkill' senza verificare se l'attività esiste? –
'taskkill' non cambia il errorlevel per me ... – user2033427
@Andriy M Voglio controllare se il processo esiste. quindi terminare il processo o chiudersi. – user2176930