Hallo zusammen
Aus dem englischen Forum habe ich diese feinen Zeilen entdeckt. So rein nach Msgbox funktioniert das StdoutRead Auslesen gut. Nur die Progressbar bleibt bei 0% zeigt nichts an, und schliesst sich auch nicht wenn der kopiervorgang beendet ist
[autoit]#include <Constants.au3>
$sourcedir = "c:\test\"
$destdir = "c:\tocopy2\"
$result=""
$ourProcess = Run (@ComSpec & " /c " & 'robocopy.exe ' & $sourcedir & ' ' & $destdir & ' /E /NJH /NJS /NDL /NC', @ScriptDir, @SW_HIDE, $STDOUT_CHILD)
ProgressOn("RoboCopy", "Copying Files...", "0%",-1,-1,18)
While 1
If $ourProcess Then
$charsWaiting = StdoutRead($ourProcess, 0 , 1)
If @error = -1 Then
$ourProcess = 0
MsgBox(0, "App Exited", "Process has exited...")
ContinueLoop
EndIf
;While 1
; $line = StdoutRead($ourProcess)
; If @error Then ExitLoop
; MsgBox(0, "STDOUT read:", $line)
;Wend
If $charsWaiting Then
$currentRead = StdoutRead($ourProcess)
$fileinfo = StringRegExp($currentRead, '(.*?)([:alpha:]:.*\.[a-zA-Z]{3})',3)
If IsArray($fileinfo) = 1 Then
$filesize = StringStripCR(StringStripWS($fileinfo[0],8))
$filename = $fileinfo[1]
EndIf
$percent = StringRegExp($currentRead, '([0-9]{1,3})(?:.[0-9]{1,3})(?:%)',3)
If IsArray($percent) = 1 Then
ProgressSet($percent[0],$percent[0]&"% "&@CRLF&"Filename: "&$filename&@CRLF&"Filesize: "&$filesize)
EndIf
If IsArray($result) Then
If StringInStr($result[0], "%") Then; Current line is a progress update line
$progress = StringTrimRight($result[0], 1)
MsgBox (4096,"Test", $progress)
EndIf
EndIf
EndIf
EndIf
WEnd
ProgressOff()
Exit
Sieht jemand den Fehler? Das wäre genau der Script, den ich gerade gut gebrauchen könnte