Hola a todos!.. soy nuevo en el foro y quisiera hacerles una consulta sobre un código que me está haciendo doler mucho la cabeza.
A través del siguiente script quisiera controlar ciertos servicios en varios servidores remotos a los cuales tengo acceso a través de una VPN sin problema.
El inconveniente es que al querer optimizar el script para que haga los controles a través de un FOR llamando a una función no me está trayendo información cuando controla si lo encuentra corriendo o no.
Como adicional y para que comprendan el script tengo también un TXT con todos los servers listados, una carpeta (Services) donde hay varios TXTs con el nombre de cada server como nombre de archivo y como contenido los servicios de cada server. Y por otro lado otra carpeta (Outs) donde se genera un TXT para cada server.
Le agradeceré mucho si me pueden ayudar con esto.
Desde ya, muchas gracias!
@echo off
Setlocal EnableDelayedExpansion
del /f /q .\Outs\out_*.txt
cls
for /f %%z in (.\Servers.txt) do call :Control %%z
exit
:Control
echo ANALYZING SERVICES IN SERVER "%1" ...
for /f "tokens=*" %%x in (.\Services\%1.txt) do (
sc \\%1 query %%x | find "STATE" | find "RUNNING"
if %errorlevel%==0 (echo Server: "%1" - Service: "%%x" - State: "RUNNING") else (echo Server: "%1" - Service: "%%x" - State: "NOT RUNNING") >> .\Outs\Out_%1.txt
)
exit /b