services windows batch-file cmd tasklist

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.