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.