My-Command 2>&1 | Tee-Object 'myfile.log'
. SieheGet-Help about_Redirection
.- Sie sollten Fehler einfangen und sich nicht auf Ctrl+ verlassen C. Siehe
Get-Help about_Try_Catch_Finally
. Wird mit dem Befehl ein externes Programm oder ein Skript ausgeführt? - Wie ich es verstehe, werden String-Objekte normalerweise nicht über die Pipe gesendet, bis ein Zeilenende-Zeichen erreicht ist. Der Grund ist ziemlich einfach: Wenn dies nicht der Fall wäre, würden unvollständige Zeichenketten (gelesen: unvollständig) die Pipe durchgehen.
Tee
Mit Teilstrings kann man zwar gut umgehen, andere Cmdlets dagegen mögenForEach-Object
oder werden esSelect-Object
bestimmt nicht. Beachten Sie, dassGet-Content
es einen speziellen Schalter gibt,-ReadCount
der dieses Verhalten etwas außer Kraft setzt, und es wird ernsthaft mit einemSelect-Object -Skip/-First/-Last/-Unique
Befehl in der Pipe verwirrt .
Es kann sehr gut sein, dass externe Programme, die Sie ausführen, nicht den Konventionen entsprechen, die PowerShell erwartet. Tee
zum Beispiel wird richtig aufgerufen Tee-Object
, was Ihnen sagen sollte, mit welchen Dingen es gut ist, damit zu arbeiten. In diesem Fall sind Sie möglicherweise weiter auf der Linie tee.exe
von GNU Win32 Utils oder MSYS, die für die sofortige Weiterleitung von Inhalten gedacht sind.