programadas - ¿Cómo iniciar un archivo por lotes minimizado con el programador de tareas en Windows 8?-El método% comspec% ya no funciona después de Windows 7
programador de tareas no ejecuta bat (6)
Aquí hay una solución de https://ss64.com/vb/run.html que ejecutará un archivo por lotes en una ventana minimizada. A diferencia de las otras soluciones que usan el comando de start
con /min
, esta no abrirá una nueva ventana en su pantalla, robará el enfoque o interrumpirá las actividades de pantalla completa.
Primero cree un archivo llamado run_minimized.vbs
con esta única línea de texto:
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 2, False
A continuación, cree su tarea del Programador de tareas con una acción para iniciar el programa wscript.exe
con estos argumentos:
"c:/path/run_minimized.vbs" "c:/path/my script.bat"
Cambie las rutas según sea necesario para especificar las ubicaciones de los dos archivos.
No hay una forma sencilla de pasar argumentos del Programador de tareas al archivo por lotes y, al mismo tiempo, conservar los espacios y las comillas, porque wscript elimina las comillas de sus argumentos. La forma más sencilla de manejar los argumentos con espacios sería colocar el comando completo del archivo por lotes en vbs:
CreateObject("Wscript.Shell").Run """c:/path/my script.bat"" ""arg 1"" arg2", 2, False
Tenga en cuenta el uso de comillas. Hay un par de comillas "
encierran toda la cadena de comando, y un par de comillas adyacentes ""
todos los lugares donde se usaría una comilla normal en una línea de comando.
Después de Windows XP, siempre uso el siguiente truco para iniciar los archivos por lotes minimizados con el Administrador de tareas de Windows.
De http://www.pcreview.co.uk/forums/running-bat-files-minimized-scheduler-t2125918.html :
"requisito previo: todos los archivos de proceso por lotes tienen un comando de salida para finalizar las acciones. Si no sale, terminará con un indicador de comando parpadeando.
Esto es lo que sigo usando:
%comspec% /c start /min "C:/Scripts/Destination_inbound_ftp5.bat"
Cuando guarde esto en las propiedades, obtendrá un diálogo de seguimiento que le preguntará si deseaba que todo esto fuera un parámetro o no. Responda NO y la tarea se guardará como usted esperaría.
También leí la pregunta de desbordamiento de pila "start% comspec% / c script.cmd" vs "start cmd / C second.cmd script.cmd" , que me hizo reemplazar la declaración "% comspec%" por "C: / Windows / system32 / cmd.exe ", pero eso tampoco cambió nada.
El problema es que ahora, en lugar de un archivo bat de ejecución minimizado, acabo con solo un indicador de comandos, minimizado pero sin ninguno de los comandos por lotes ejecutados. El estado del programador de tareas sigue siendo "en ejecución" :(
¿Cómo puedo hacer esto en Windows 8 (64 bits)? Preferible con los comandos por lotes de la vieja escuela en lugar de PowerShell (o peor, p)
El comando de inicio necesita las comillas ""
para desactivar la función de título. Intenta programar esto:
%comspec% /c start "" /min "C:/Scripts/Destination_inbound_ftp5.bat"
No me gustó ver la ventana de comandos emergente y luego desaparecer, así que aquí hay otra solución de https://ss64.com/vb/run.html ...
Primero crea invisible.vbs
con esta única línea de texto:
CreateObject("Wscript.Shell").Run """" & WScript.Arguments(0) & """", 0, False
A continuación y finalmente, inicie su archivo cmd o batch a través de:
%SystemRoot%/system32/wscript.exe "invisible.vbs" "myscript.cmd" //nologo
Ta da! Las secuencias de comandos de este tipo se han incorporado en Windows durante mucho tiempo. Si tiene curiosidad, realice una búsqueda en la web de "WSH" (host de secuencias de comandos de Windows). Incluso puede escribir dichos scripts en el dialecto de JavaScript llamado JScript.
Otra posibilidad: un pequeño programa gratuito llamado CMDH , que simplemente ejecuta los pedidos solicitados en segundo plano . Por ejemplo:
cmdh MyScript.cmd
No es necesario agregar "salir" al script. Probado funcionando en Windows XP SP3, y no hay razón para que falle en Windows 8.
Suponiendo que Windows 8 es lo mismo que Windows 7, una "salida" solo saldrá del archivo por lotes (lo que se hará de todos modos).
Necesitas agregar el código de salida así:
Bajo "Programa / Script":
CMD (o command.exe, o% comspec%)
En "Argumentos:
/c start "Title" /min "C:/Scripts/Destination_inbound_ftp5.bat" ^& exit