Cómo ejecutar un script automáticamente: el programador de tareas no puede ejecutar un archivo por lotes (ejecutar si el usuario está conectado o no)?Hola a todos,
Estoy tratando de ejecutar el archivo por lotes automáticamente todos los días cuando botón de radio - "ejecutar si el usuario ha iniciado sesión o no" está seleccionado y no funciona
Funciona solo cuando boton de radio "ejecutar con el usuario conectado" es seleccionado.
¿Puedes aconsejarme por favor?
Gracias
Diseño de experimentosventanasRe: ¿Cómo ejecutar un script automáticamente? El programador de tareas no puede ejecutar un archivo por lotes (ejecutar tanto si el usuario inició sesión como si no).Hola @Botzal ,
No estoy seguro de lo que está tratando de hacer con los archivos cmd y jmp ejecutándose al mismo tiempo.
Puedo ejecutar mi secuencia de comandos durante el inicio/cierre de sesión del usuario en un momento específico por debajo del flujo;
-> El programador de tareas ejecuta mi secuencia de comandos JSL en un momento específico
-> el script .jmp abre un archivo cmd (para que TI copie/pegue los resultados de JMP desde la PC local al servidor de la intranet)
//call IT cmd to copy the files to intranet server
RP = run program(
Executable ("C:\ScriptJMPAutomation\MoveJMPFile.exe")
);
//set no save for auto taskscheduler
exit(nosave);-> El archivo .cmd se cierra después de ejecutar su secuencia de comandos y el archivo .jmp se cierra sin guardar.
El programador de tareas.
Así que lo obligué a detenerse después de 1 hora a través de la configuración del programador de tareas.

Puede volver a comprobar los resultados después de la "1 hora" realizada. Se mostrará como "listo".
Mi informe está listo para verlo a la mañana siguiente, aunque la PC se desconectó durante la ejecución del script.
No estoy seguro de si esto es útil, pero solo para compartir cómo lo hice.
Tal vez también pueda leer el enlace a continuación para obtener más detalles.
https://docplayer.net/48888365-Syntax-overview-let-s-start-with-the-syntax-of-run-program.html
Re: ¿Cómo ejecutar un script automáticamente? El programador de tareas no puede ejecutar un archivo por lotes (ejecutar tanto si el usuario inició sesión como si no).Puede agregar algunas acciones en su secuencia de comandos que lo ayuden a señalar las partes de su secuencia de comandos que no funcionan. Por ejemplo, podría agregar líneas como esta a lo largo de su secuencia de comandos:
Save Text File( "$TEMP/RunStatus - Finished defining functions.txt", "")
Save Text File( "$TEMP/RunStatus - Starting to download data.txt", "")
Save Text File( "$TEMP/RunStatus - Downloading data and starting transformations.txt", "")
Re: ¿Cómo ejecutar un script automáticamente? El programador de tareas no puede ejecutar un archivo por lotes (ejecutar tanto si el usuario inició sesión como si no).Hola @ih ,
Pude ejecutar lo anterior. simple script automáticamente cuando se seleccionó el botón "Ejecutar si el usuario ha iniciado sesión o no".
La solución para ejecutarlo: agregué /k en el Programador de tareas, consulte a continuación.

Pero cuando trato de ejecutar un script complicado (obteniendo datos del servidor y guardando la salida en el servidor) todavía no funciona: se atascó en el estado de ejecución. algún consejo por favor?
Gracias
Re: ¿Cómo ejecutar un script automáticamente? El programador de tareas no puede ejecutar un archivo por lotes (ejecutar tanto si el usuario inició sesión como si no).Correcto.
El script se ejecuta y genera una salida cuando se selecciona "Ejecutar solo cuando el usuario ha iniciado sesión",
y no funciona cuando se selecciona "Ejecutar si el usuario ha iniciado sesión o no".
En ambas opciones comienzo la tarea manualmente.
Re: ¿Cómo ejecutar un script automáticamente? El programador de tareas no puede ejecutar un archivo por lotes (ejecutar tanto si el usuario inició sesión como si no).Para aclarar, cuando dice que no funciona, ¿significa que el archivo SE crea cuando la tarea está configurada para ejecutarse cuando el usuario inicia sesión y usted inicia manualmente la tarea, y NO se crea cuando se configura para ejecutarse si el usuario inició sesión o no y usted inicia manualmente la tarea?
Re: ¿Cómo ejecutar un script automáticamente? El programador de tareas no puede ejecutar un archivo por lotes (ejecutar tanto si el usuario inició sesión como si no).@jthi ,
por supuesto, lo agregué al script... no funciona.
Re: ¿Cómo ejecutar un script automáticamente? El programador de tareas no puede ejecutar un archivo por lotes (ejecutar tanto si el usuario inició sesión como si no).Agregar
Exit(No save);
o
Quit(No save);
al final del script jsl que intenta ejecutar para cerrar la instancia de JMP
Re: ¿Cómo ejecutar un script automáticamente? El programador de tareas no puede ejecutar un archivo por lotes (ejecutar tanto si el usuario inició sesión como si no).@ih
Traté de hacer esto, no funciona
También abre un proceso CMD y JMP (en el administrador de tareas) y está atascado en el estado de ejecución.
Re: ¿Cómo ejecutar un script automáticamente? El programador de tareas no puede ejecutar un archivo por lotes (ejecutar tanto si el usuario inició sesión como si no).Desde que JMP comenzó, me centraría en su guión.Tal vez comience con algo muy simple como lo que se muestra a continuación.Recuerde que todas sus salidas deben escribirse en un archivo, no tendrá acceso a ninguna ventana o informe abierto por su secuencia de comandos.
Ejecute esto de forma interactiva primero y asegúrese de tener acceso para escribir en el archivo, luego elimine el archivo csv e intente ejecutarlo a través del programador de tareas:
//!
dt = New Table( "Untitled",
Add Rows( 1 ),
New Column( "test", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1] ) )
);
dt << Save As( "C:/test.csv" )
Re: ¿Cómo ejecutar un script automáticamente? El programador de tareas no puede ejecutar un archivo por lotes (ejecutar tanto si el usuario inició sesión como si no).Hola @ih ,
Cuando trato de ejecutarlo manualmente, abre un proceso CMD y JMP (en el administrador de tareas) y se atasca en el estado de ejecución.
Además, traté de desmarcar todo en la pestaña de condiciones, todavía no funcionó.
¿Tiene algún otro consejo, por favor?
Gracias


Re: ¿Cómo ejecutar un script automáticamente? El programador de tareas no puede ejecutar un archivo por lotes (ejecutar tanto si el usuario inició sesión como si no).¿Qué sucede cuando intenta iniciar manualmente la tarea con 'ejecutar si el usuario ha iniciado sesión o no' marcado?¿Muestra un error?¿JMP se inicia y luego se cierra (debería mirar el administrador de tareas ya que la ventana no se abre)?
A veces necesito desmarcar todo en la pestaña de condiciones para corregir algunos errores que parecían problemas de permisos.
Re: ¿Cómo ejecutar un script automáticamente? El programador de tareas no puede ejecutar un archivo por lotes (ejecutar tanto si el usuario inició sesión como si no).Hola @SDF1
Sé y entiendo tu explicación, pero eso no es lo que quiero decir.
mi intención era,
Cómo programo el script (usando el programador de tareas) que se ejecutará todas las mañanas incluso cuando cierre la sesión en la computadora.
El script JMP no debería funcionar de forma interactiva.
Gracias
Re: ¿Cómo ejecutar un script automáticamente? El programador de tareas no puede ejecutar un archivo por lotes (ejecutar tanto si el usuario inició sesión como si no).Hola @Botzal ,
Si tiene un archivo por lotes del sistema separado que puede abrir un archivo JSL, es decir, haga doble clic en él, entonces debería poder ejecutar el archivo JSL automáticamente. Si el primer Me gusta de su código JSL es el siguiente //! luego, una vez que guarda y cierra el archivo, si hace doble clic en él, ejecuta el código JSL, pero no abre el archivo para editarlo. Si su archivo por lotes puede abrirlo, creo que debería funcionar, pero no lo he intentado yo mismo.
¡Espero que esto ayude!,
SD