È possibile eseguire semplicemente taskkill /im notepad.exe
in tutti i casi. Se non è in esecuzione, quindi taskill
non avrà nulla da uccidere e tornerà solo.
In questa situazione, taskkill
segnala un errore e imposta il livello di errore. È possibile sopprimere la segnalazione dell'errore reindirizzando standard error:
taskkill /im notepad.exe 2> nul
Per quanto riguarda il livello di errore, si può semplicemente ignorare che e sarà eliminato dal comando successivo che si esegue. O se necessario, è possibile clear it yourself.
Questo approccio è, a mio avviso, meglio che tentare di anticipare se taskkill
riuscirà o meno. Non sarai in grado di anticipare tutte le possibili modalità di errore e dal momento che lo stesso taskkill
esegue esattamente il controllo che stai chiedendo, penso che potresti lasciare il controllo a taskkill
.
fonte
2013-04-09 13:23:39
Forse il richiedente stava cercando ** taskkill/im notepad.exe || exit/b ** – joojaa
non genererà un errore? se lo fa, potrebbe non eseguire le prossime dichiarazioni? – Mowgli
Segnala un errore. E mostro come sopprimerlo. Ma continuerà ad eseguire la prossima dichiarazione. Ricorda che questo è un batch di cui stiamo parlando, non un vero linguaggio di programmazione! ;-) –