elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Bat para revision de servicio y llamada a otro bat
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Bat para revision de servicio y llamada a otro bat  (Leído 3,361 veces)
angelhe91

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Bat para revision de servicio y llamada a otro bat
« en: 4 Diciembre 2022, 20:15 pm »

Buenas tardes,

Tengo el siguiente problema estoy haciendo un .bat que me verifique el servicio de IIS con la siguiente condición si esta detenido salga del .bat y si esta en ejecución me llame al otro bat pero no logro que me cumpla el if.

@echo off
sc query W3SVC | find /I "STATE" | find "STOPPED" | find "1"
IF ERRORLEVEL 1 ( exit ) ELSE ( call Borrar_NEW.bat )
PAUSE


En línea

Username_Loading...

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Bat para revision de servicio y llamada a otro bat
« Respuesta #1 en: 8 Diciembre 2022, 14:13 pm »

Citar
La respuesta que recibes a continuación es generada por una inteligencia artificial, y es presentada aquí como curiosidad. Ten en cuenta que la información puede no ser del todo precisa y es recomendable verificarla o esperar a que alguien la confirme.
Según GPT-3:

"La forma en que estás utilizando el comando find no es correcta. El comando find busca una cadena de texto en la salida de otro comando y devuelve un código de error distinto dependiendo de si encuentra o no la cadena de texto buscada.

En tu caso, estás utilizando el comando find de la siguiente manera:
Código:
sc query W3SVC | find /I "STATE" | find "STOPPED" | find "1"

En esta línea, el comando sc query W3SVC se utiliza para obtener información sobre el servicio W3SVC, que es el servicio de IIS. La salida de este comando se pasa a find /I "STATE", que busca la cadena "STATE" en mayúsculas o minúsculas en la salida del comando anterior. La salida de este comando se pasa a find "STOPPED", que busca la cadena "STOPPED" en la salida del comando anterior. Y finalmente, la salida de este comando se pasa a find "1", que busca la cadena "1" en la salida del comando anterior.

Como puedes ver, estás utilizando el comando find de una manera muy limitada. Para verificar si el servicio W3SVC está detenido o en ejecución, te recomendaría utilizar el comando find de la siguiente manera:

Código:
sc query W3SVC | find /I "STOPPED"

Esta línea utiliza el comando sc query W3SVC para obtener información sobre el servicio W3SVC, y luego pasa la salida a find /I "STOPPED", que busca la cadena "STOPPED" en mayúsculas o minúsculas en la salida del comando anterior.

Si la cadena "STOPPED" se encuentra en la salida del comando sc query W3SVC, significa que el servicio está detenido y el comando find devolverá un código de error distinto de cero. Si no se encuentra la cadena "STOPPED", significa que el servicio está en ejecución y el comando find devolverá un código de error cero.

Por lo tanto, para verificar si el servicio W3SVC está detenido o en ejecución, puedes utilizar el comando find de la siguiente manera:

Código:
@echo off
sc query W3SVC | find /I "STOPPED"
IF ERRORLEVEL 1 (
  echo El servicio W3SVC está detenido.
  exit
) ELSE (
  echo El servicio W3SVC está en ejecución.
  call Borrar_NEW.bat
)
PAUSE

En este caso, la estructura IF ERRORLEVEL 1 comprueba si el comando find ha devuelto un código de error distinto de cero, lo que significa que se ha encontrado la cadena "STOPPED" en la salida del comando sc query W3SVC. Si se encuentra la cadena "STOPPED", se ejecutará el código entre las llaves {} después del ( y antes del ), que en este caso es una sentencia echo que imprime un mensaje en pantalla y una sentencia exit que finaliza el script.

Si no se encuentra la cadena "STOPPED", se ejecutará el código después del ELSE, que en este caso es otra sentencia echo que imprime un mensaje en pantalla y una sentencia call que llama al script Borrar_NEW.bat.

Espero que esta información te sea útil. Si tienes más preguntas o necesitas más ayuda, no dudes en hacerlas. Estoy aquí para ayudarte."



En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines