Ejecución de comandos en el cierre de sesión
Publicado: 31 Ene 2014, 19:12
Hola,
Tengo un script en autoit que llama a un comando para comprimir unas carpetas con winrar (por consola ejecutando el rar.exe). Por sí solo me funciona bien, pero cuando intento ponerlo al cerrar la sesión en Windows 7 no se me ejecuta la llamada.
He puesto que me guarde logs antes y después de la llamada y estos sí que se me guardan por lo que he acotado el problema a la línea:
He probado intentando pasar la salida a un fichero a través de StdoutRead y StderrRead, pero me salen en blanco cuando cierro la sesión,
Pero igual que en caso anterior, no me sale nada al cerrar, aunque manualmente sí que se ve la salida.
¿Hay alguna manera mejor de intentar ver que error puede dar al ejecutar el comando o si hay que hacer la llamada de alguna manera específica?
Muchas gracias y un saludo.
Tengo un script en autoit que llama a un comando para comprimir unas carpetas con winrar (por consola ejecutando el rar.exe). Por sí solo me funciona bien, pero cuando intento ponerlo al cerrar la sesión en Windows 7 no se me ejecuta la llamada.
He puesto que me guarde logs antes y después de la llamada y estos sí que se me guardan por lo que he acotado el problema a la línea:
Código: Seleccionar todo
$command_rar='"c:\Program Files\WinRAR\rar.exe" a -ef -ed -ep1 -sl'&$length_file_max&'B -x*.lnk -x*.ini -xPI_*.xml '&$dir_backup&'\'&$name_rar&' '&$dir_origen1&' '&$dir_origen2&''
Run(@ComSpec&' /c '&$command_rar,"",@SW_HIDE)
He probado intentando pasar la salida a un fichero a través de StdoutRead y StderrRead, pero me salen en blanco cuando cierro la sesión,
Código: Seleccionar todo
Local $iPID=Run(@ComSpec&' /c '&$command_rar,"",@SW_HIDE,$STDERR_CHILD + $STDOUT_CHILD + $RUN_CREATE_NEW_CONSOLE) ; Para que se esconda la ejecución
Local $sOutput=""
While 1
$sOutput=StdoutRead($iPID)
If @error Then
ExitLoop
EndIf
FileWriteLine($hFileOpen, $sOutput)
WEnd
FileWriteLine($hFileOpen, "DERR_CHILD")
While 1
$sOutput=StderrRead($iPID)
If @error Then
ExitLoop
EndIf
FileWriteLine($hFileOpen, $sOutput)
WEnd
¿Hay alguna manera mejor de intentar ver que error puede dar al ejecutar el comando o si hay que hacer la llamada de alguna manera específica?
Muchas gracias y un saludo.