Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

stderr Ausgabe aus python script (oder cmd) abfangen oder umleiten

$
0
0

Hallo,
ich rufe aus powershell ein python script auf.

$result=python C:\py\check.py -t tempfile

Das funktioniert wie gewünscht, die Ausgabe landet in $result und ich kann sie von dort aus weiter verwerten.

Probleme gibt es wenn das python script eine Ausgabe nach stderr macht
z.B.:
sys.stderr.write('Error...\r')

Dann kommt es zu einem Fehler in powershell:
python.exe : Error...
At C:\PS\consolidate.ps1:298 char:33
+                         $result=python C:\py\check.py -t tem ...
+                                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Error...:String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError
Error...

In einer batch Datei konnte man den Fehlerkanal einfach umleiten.
check.py -t tempfile 2>nul

In Powershell geht das nicht.
Redirection to 'nul' failed: FileStream will not open Win32 devices such as disk partitions and tape drives.

Nun kann ich zwar den Fehlerkanal nach stdout umleiten mit 2>&1, das klappt auch in Powershell, verhindert aber nicht den Fehler und ist auch nicht was ich möchte.
Ich möchte entweder den Fehlerkanal nach nul schreiben oder in eine separate Variable.

Aktuell helfe ich mir, im python script die entsprechende Zeile einfach auszukommentieren.
Ich suche aber nach einer Lösung die im Powershell die saubere Übernahme von stdout und stderr ermöglicht.

Gruß

Michael



Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>