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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage