Identifizieren Sie laufende Instanzen einer Batch-Datei
Diese arbeiten nicht für mich.
Irgendeine Hilfe, um die vier folgenden Beispiele definitiv zu korrigieren?
Das BEISPIEL01 hallt nur "weiter", auch wenn ich drei CMD.exe geöffnet habe.
---------- BEISPIEL 01 ------------
@echo off
wmic process where name="cmd.exe" | find "cmd.exe" /c
SET ERRORLEVEL=value if "%value%" GTR 1 (
ECHO This batch is not first
ECHO quitting ...
)
if "%value%" LSS 2 ECHO continue
Ich erhalte die Meldung "Unerwarteter i-Fehler" in BEISPIEL 02!
----------- BEISPIEL 02 -------
@echo off
FOR /F "usebackq tokens=2" %i IN (`tasklist ^| findstr /r /b "cmd.exe"`)
DO taskkill /pid %%i
Ich erhalte die Meldung "is first" im BEISPIEL 03, obwohl drei CMD.exe geöffnet sind!
----------- BEISPIEL 03 -------
@echo off
wmic process where name="cmd.exe" | find "cmd.exe" /c
if "%errorlevel%" LEQ 1 echo CMD is first
if "%errorlevel%" GTR 1 echo CMD is already running
Es ist auch möglich, dass ich bei der Arbeit keinen Zugriff auf den Befehl Wmic habe. Eine andere Möglichkeit ist in BEISPIEL 04 zu finden, aber ohne Erfolg.
----------- BEISPIEL 04 -------
@echo off
Tasklist /FI "IMAGENAME eq cmd.exe" 2>NUL | find /I /N "cmd.exe">NUL
if "%ERRORLEVEL%"==0 do (goto Use) else (goto Cont)
:Cont
ECHO Only one instance running
pause
:Use
echo Application running already. Close this window
Herzliche Grüße, Maleck