2013-04-09 8 views

Antwort

10

Sie können einfach taskkill /im notepad.exe in allen Fällen ausführen. Wenn es nicht läuft, dann taskill wird nichts zu töten haben und wird einfach zurückkehren.

In dieser Situation wird taskkill einen Fehler melden und die Fehlerstufe festlegen. Sie können durch Umleitung Standardfehler die Meldung des Fehlers unterdrücken:

taskkill /im notepad.exe 2> nul 

Was die Fehlerebene können Sie nur, dass ignorieren und es wird durch den nächsten Befehl gelöscht werden, die Sie ausführen. Oder bei Bedarf können Sie clear it yourself.

Dieser Ansatz ist meiner Ansicht nach besser als zu versuchen, vorherzusehen, ob taskkill erfolgreich sein wird oder nicht. Sie werden nicht in der Lage sein, alle möglichen Fehlermodi vorherzusehen, und da taskkill selbst die Überprüfung ausführt, nach der Sie fragen, können Sie diese Prüfung auch auf taskkill setzen.

+0

Möglicherweise suchte der Fragesteller nach ** taskkill/im notepad.exe || exit/b ** – joojaa

+0

wird es nicht Fehler werfen? Wenn dies der Fall ist, kann es die nächsten Anweisungen nicht ausführen. – Mowgli

+0

Es meldet einen Fehler. Und ich zeige, wie man das unterdrückt. Aber es wird weiter die nächste Aussage ausführen. Denken Sie daran, dass es sich um einen Stapel handelt, von dem wir sprechen, keine echte Programmiersprache! ;-) –

6

Versuchen Sie taskkill /fi "IMAGENAME eq notepad.exe" Nicht finden notepad.exe wird nur eine Info anstelle eines Fehlers zu werfen.

+0

+1 Das ist ganz nett. Vermeidet das Zurücksetzen des Fehlerlevels. Ihre abschließende Aussage ist jedoch irreführend. Fehler stoppen die Ausführung nicht. Die Ausführung funktioniert nur bei Fehlern. –

+0

Jetzt repariert, danke! – tomdemuyt

Verwandte Themen