Ein etwas unordentlicher Weg, den ich mir vorstellen kann, ist, eines der portierten tee
Programme zu verwenden, in eine temporäre Datei zu speichern und dann die Datei mit zu testen find
. Die Verwendung einer temporären Datei kann jedoch unerwünscht sein.
Wenn PowerShell eine Option ist, verfügt sie tatsächlich über ein Tee-Output
Cmdlet. Es ist nicht ganz so direkt wie das Bash-Beispiel, aber es gibt eine -Variable
Option zum Speichern der Ausgabe in einer Variablen, die dann durchsucht werden kann:
# save result in $LastOutput and also display it to the console echo "some text" | Tee-Output -Variable LastOutput # search $LastOutput for a pattern, using Select-String # instead of find to keep it within PowerShell $Result = $LastOutput | Select-String -Quiet "text to find" # $Result should contain either true or false now # this is the equivalent of batch "if errorlevel 1" if ($Result -eq $True) { # the string exists in the output }
Um die allgemeinere Frage zu beantworten, ist es auch möglich, die Variable in ein beliebiges anderes Programm zu übergeben, das dann gesetzt wird $LastExitCode
. Als Einzeiler, der von der grundlegenden Befehlszeile aus aufgerufen werden kann:powershell -c "echo text | Tee-Object -Variable Result; $Result | foo"