Überprüfen, ob eine bestimmte Fledermaus-Datei mybatch.bat
läuft könnte eine härtere Aufgabe als es auf den ersten Blick aussehen könnte.
der Suche nach einem bestimmten Fenstertitel in tasklist /V
sowie Prüfung CommandLine
Eigenschaft in wmic process where "name='cmd.exe'" get CommandLine
könnte unter einem denkbaren Umständen scheitern.
1st. Können Sie
- hinzufügen
title ThisIsDistinguishingString
Befehl am Anfang der mybatch.bat
und
- Entfernen Sie alle anderen
title
Befehle von mybatch.bat
und
- sicherzustellen, dass
mybatch.bat
nicht Anruf eine andere Batch-Skript (n) enthält, ein title
Befehl?
Dann überprüfen errorlevel
von find
command zurück wie folgt:
:testMybatch
tasklist /V /FI "imagename eq cmd.exe" | find "ThisIsDistinguishingString" > nul
if errorlevel 1 (
rem echo mybatch.bat batch not found
) else (
echo mybatch.bat is running %date% %time%
timeout /T 10 /NOBREAK >NUL 2>&1
goto :testMybatch
)
2..Andernfalls überprüfen, ob wmic
Windows Management Instrumentation command Ausgang
helfen könnte
wmic process where "name='cmd.exe'" get /value
Dann könnten Sie mybatch.bat
in seine Ausgabe an
wmic process where "name='cmd.exe'" get CommandLine, ProcessID
Hinweis verengte erkennen, dass wmic
einige Win32_Process
class Eigenschaften zurückkehren konnten, vor allem CommandLine
, leer wenn eine bestimmte Prozess wurde unter einem anderen Benutzerkonto gestartet oder erhöht (als Administrator ausgeführt).
Erhöht wmic
gibt alle Eigenschaften vollständig zurück.
'tasklist/v' gibt den Fenstertitel. Es ist, als wäre es der Fenstertitel - cmd ändert den Titel nicht. –