Ich möchte eine Batch-Datei schreiben, die überprüft, ob ein Prozess ausgeführt wird, und eine Aktion, wenn dies der Fall ist, und eine andere Aktion, wenn dies nicht der Fall ist.Wie kann ich in einer Batchdatei feststellen, ob ein Prozess ausgeführt wird?
Ich weiß, ich kann Tasklist verwenden, um alle laufenden Prozesse aufzulisten, aber gibt es eine einfachere Möglichkeit, einen bestimmten Prozess direkt zu überprüfen?
Es scheint, wie das funktionieren sollte, aber es funktioniert nicht:
tasklist /fi "imagename eq firefox.exe" /hn | MyTask
IF %MyTask%=="" GOTO DO_NOTHING
'do something here
:DO_NOTHING
die Lösung von atzz mit Hilfe des mitgelieferten hier ist eine komplette Arbeits Demo:
Edit: Vereinfachte und beide WinXP und Vista geändert unter
echo off
set process_1="firefox.exe"
set process_2="iexplore.exe"
set ignore_result=INFO:
for /f "usebackq" %%A in (`tasklist /nh /fi "imagename eq %process_1%"`) do if not %%A==%ignore_result% Exit
for /f "usebackq" %%B in (`tasklist /nh /fi "imagename eq %process_2%"`) do if not %%B==%ignore_result% Exit
start "C:\Program Files\Internet Explorer\iexplore.exe" www.google.com
Schöne ... es gibt so viele versteckte Edelsteine in cmd.exe. – Kev