Saltar al contenido

Ejecutar un archivo .bat en una tarea programada sin ventana

Miguel, parte de este equipo, nos ha hecho el favor de redactar este artículo ya que domina muy bien el tema.

Solución:

Solución 1:

En su lugar, puede ejecutarlo en silencio utilizando un archivo de script de Windows. El método de ejecución le permite ejecutar un script en modo invisible. Crear un .vbs archivo como este

Dim WinScriptHost
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "C:Scheduled Jobsmybat.bat" & Chr(34), 0
Set WinScriptHost = Nothing

y programarlo. El segundo argumento de este ejemplo establece el estilo de la ventana. 0 significa “ocultar la ventana”.

Sintaxis completa del método Run:

 object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])

Argumentos:

  • objeto: objeto WshShell.
  • strCommand: valor de cadena que indica la línea de comando que desea ejecutar. Debe incluir cualquier parámetro que desee pasar al archivo ejecutable.
  • intWindowStyle: Opcional. Valor entero que indica el aspecto de la ventana del programa. Tenga en cuenta que no todos los programas hacen uso de esta información.
  • bWaitOnReturn: Opcional. Valor booleano que indica si la secuencia de comandos debe esperar a que el programa termine de ejecutarse antes de continuar con la siguiente instrucción de la secuencia de comandos. Si se establece en true, la ejecución del script se detiene hasta que finaliza el programa y Run devuelve cualquier código de error devuelto por el programa. Si se establece en false (el valor predeterminado), el método Run vuelve inmediatamente después de iniciar el programa, devolviendo automáticamente 0 (que no debe interpretarse como un código de error).

Solución 2:

¿Está ejecutando esto como una tarea programada? Si es así, configúrelo para que se ejecute como una cuenta de usuario diferente, entonces no será visible para el usuario que inició sesión. Si el script no necesita acceso a la red para los elementos que necesitan autenticación de Windows (como archivos compartidos o impresoras), puede ejecutarlo como “autoridad ntsistema” y dejar la contraseña en blanco. En Windows 7, simplemente configure el usuario en SISTEMA y presione Aceptar.

(Probablemente tengas que usar un usuario real si estás usando robocopy…)

jr


Solución 3:

Simplemente configure la Tarea programada como “Ejecutar si el usuario ha iniciado sesión o no”.


Solución 4:

También puedes probar CHP (Crear proceso oculto), hace exactamente lo que piensas…

CHP.EXE mybat.bat

Se ejecuta sin ventana de comandos. ¡Perfecto! Hecho por las mismas personas que CMDOW, pero esto es más apropiado.


Solución 5:

CMDOW es una herramienta increíble que te permite hacer muchas, muchas cosas en Windows desde la línea de comandos.

Una de las cosas más sencillas que puede hacer es ocultar la ventana actual (generalmente como una primera línea en el archivo bat) con:

cmdow @ /hid

o iniciar un nuevo proceso oculto con

cmdow /run /hid mybat.bat 

Reseñas y valoraciones del post

Agradecemos que quieras secundar nuestra faena mostrando un comentario y dejando una puntuación te damos la bienvenida.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *