services - Buscar proceso abierto en lote de Windows
tasklist services (1)
Intento escribir un código que se repite y me dice si un determinado proceso está abierto o no. Debería ser un ciclo que me muestre en tiempo real si el proceso se abre o no. En otras palabras, un texto cambiará cuando se abra el programa y cambiará nuevamente cuando esté cerrado. En cambio, lo que obtuve fue una inundación con el mismo texto y no muestra los ''echos'' debajo de él.
Intenté esto:
@echo off
goto xera
:start
tasklist /FI "IMAGENAME eq notepad.exe" | find /I "notepad.exe" > nul
IF %ERRORLEVEL% equ 0 ECHO is opened
IF %ERRORLEVEL% equ 1 ECHO isnt opened
:xera
set /p "=Status: " <nul &call :start //the code got ''stuck'' here
ECHO Text 2 (doesnt show)
pause>nul
No está terminando su sub-rutina :start
correctamente. Pruebe lo siguiente:
@echo off
goto xera
:start
tasklist /FI "IMAGENAME eq notepad.exe" | find /I "notepad.exe" > nul
IF %ERRORLEVEL% equ 0 ECHO is opened
IF %ERRORLEVEL% equ 1 ECHO isnt opened
exit /b
:xera
set /p "=Status: " <nul &call :start
ECHO Text 2 (doesnt show)
pause>nul
Inserté exit /b
que le dice al intérprete de comandos que regrese al comando después de la instrucción de call
que realmente lo llamó. También puede usar goto :EOF
lugar. Escriba call /?
para obtener más información sobre cómo llamar subrutinas en lote.