Transcript und externe Befehle in PowerShell

PowerShell bietet mit dem Transcript-Befehl eine nach meiner Meinung sehr effektive und elegante Möglichkeit an, die Ausgaben von Befehlen an STDOUT und STDERR auf zu zeichnen. Leider klappt das mit externen Befehlen welche aus dem PowerShell-Script heraus aufgerufen werden nicht zuverlässig. Eine Lösung hier ist die Ausgabe von STDOUT und STDERR nach Transcript um zu leiten.

Hier mal ein Beispiel-Code dazu:

$ErrorActionPreference="SilentlyContinue"
Stop-Transcript | out-null
$ErrorActionPreference = "Continue"
 
$Log = "C:\Temp\output.log"
Start-Transcript -Path $Log -Append
 
# Umleiten von STDOUT und STDERR (2>&1) nach transcript:
befehl.exe 2>&1 | out-host
 
Stop-Transcript

Dieser Workaround hat mir neulich bei einem Script sehr geholfen!

Enjoy it, b!

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden /  Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden /  Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden /  Ändern )

Verbinde mit %s