Ich benutze diesen Befehl, um die Ausgabe sowohl in der Konsole als auch in einer Datei zu sehen:
powershell -command "my_command_1 | tee ('logs\{0}.log' -f (Get-Date -format 'yyyy.MM.dd-HH.mm'))"
powershell -command "my_command_2 | tee ('logs\{0}.log' -f (Get-Date -format 'yyyy.MM.dd-HH.mm'))"
# etc
Es funktioniert nicht so gut wie ich erwartet hatte und ich habe einige Fragen:
- Wie leite ich stderr auch in eine Datei um?
Die Ausgabe funktioniert sehr seltsam. Bei einigen Befehlen gibt es eine große Verzögerung zwischen dem Drucken von Text und dem Aktualisieren der Konsole / Datei. Bei einigen anderen Befehlen scheint die Ausgabe beim Drucken von Text aktualisiert zu sein (ich führe Befehle ohne Abschlag aus und weiß, was gedruckt werden soll). Diese Verzögerung macht dieses T-Shirt fast unbrauchbar - was ist, wenn ein kritischer Fehler gedruckt wird, sodass ich den Befehl stoppen muss, aber nichts sehe, bis es zu spät ist?
Bei einigen Befehlen wird die Ausgabe erst gedruckt, nachdem der vollständige Befehl ausgeführt wurde.
- Selbst wenn der Befehl nach Benutzereingaben fragt, ist die Konsolen- / Dateiausgabe leer! Für diesen Befehl weiß ich, was er erwartet und drucke blind benötigten Text und es hat funktioniert, aber für andere - ohne Ausgabe werde ich warten, bis etwas unendlich passiert, während der Befehl auf meine Eingabe wartet!
Gibt es Lösungen für diese Probleme? Wenn nicht, ist dieses Tee-Ding in PowerShell völlig nutzlos.