Определить запущенные экземпляры командного файла

Это не работает для меня.

Любая помощь, чтобы определенно исправить четыре примера ниже?

EXAMPLE01 просто повторяет «продолжить», даже если у меня открыто три CMD.exe.

---------- ПРИМЕР 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

Я получаю сообщение "Неожиданная ошибка i" сообщение в ПРИМЕРЕ 02!

----------- ПРИМЕР 02 -------

@echo off
FOR /F "usebackq tokens=2" %i IN (`tasklist ^| findstr /r /b "cmd.exe"`)
   DO taskkill /pid %%i

Я получаю сообщение "сначала" сообщение в ПРИМЕРЕ 03, даже с тремя открытыми CMD.exe!

----------- ПРИМЕР 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

Также возможно, что у меня не будет доступа к команде Wmic на работе, поэтому другая возможность найдена в ПРИМЕРЕ 04 ... но безрезультатно.

----------- ПРИМЕР 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

С уважением, Maleck

Ответы на вопрос(2)

Ваш ответ на вопрос