Die Erfassung und die Ausgabe von STDOUT an der gleichen Zeit
Ich habe den folgenden code zu erfassen und zu verarbeiten, den Run-Befehl ausgegeben.
Wie kann ich es ändern, so dass der Befehl "Ausführen" - Fenster zeigt output und gleichzeitig die Ausgabe wird protokolliert? Ersetzen @SW_HIDE
mit @SW_SHOW
(oder gleichwertig) zeigt nur ein leeres Befehlsfenster.
Etwas ähnliches wie die linux tee
Befehl, die logs auf Datei, während es druckt die Ausgabe auf STDOUT.
$CurrentPID = Run(@ComSpec & ' /c ' & $CurrentLogCmd, "", @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
If Not ProcessWaitClose($CurrentPID,60) Then
WriteLog("[Warning] Timed-out.Finding date in current hour raw log -" & $CurrentLogFileName)
$F_LogWarningExist = 1
Return $C_SUCCESS ; Take chances and proceed with parsing raw logs
EndIf
$CurrentOutput = StdoutRead($CurrentPID)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vielleicht hilft Sie aus.
Umleiten von STDOUT macht die empfangende Partei (das Skript) verantwortlich für die Anzeige und Protokollierung. Als pro Dokumentation:
Beispiel:
Rückgabe von STDOUT (und STDERR) nach Ausführung abgeschlossen ist, während das schreiben auf die Konsole während Ausführung. Ersetzen
MsgBox()
als erforderlich (logging-Funktion).