derhoeppi
Goto Top

Parse Command Output

Guten Morgen,

meine Herausforderung besteht aktuell darin einen Output zu parsen was eigentlich nicht schwer ist. Doch ich scheitere daran, weshalb ich um eure Hilfe bitte.

$test = wsl --help
$test | ?{$_ -like "*mount*"}  
# $test | Select-String -Pattern 'mount' 

Egal was ich tue - ich bekomme keine Rückgabe das dieser String in dem Array gefunden wurde. Zum Testen habe ich den Output ebenfalls mal mit Trim() und Replace bearbeitet, damit die Leerzeilen und Zeichen verschwinden, aber das änderte gar nichts am Ergebnis. Ich würde mich freuen, wenn mir jemand einen Hinweis geben kann.

Content-ID: 7912867545

Url: https://administrator.de/contentid/7912867545

Ausgedruckt am: 21.11.2024 um 16:11 Uhr

7907292512
Lösung 7907292512 21.07.2023 aktualisiert um 09:45:21 Uhr
Goto Top
Moin.
Das ist hier eine seltene Ausnahme, der Befehl "wsl --help" gibt die Daten als Unicode kodiert aus und deswegen findet er nichts.
Kannst du dir selbst ansehen wenn du mal folgendes auf der Konsole machst
 wsl --help >.\output.txt 2>&1
Workaround: Ändere für den Befehl das Output-Encoding
[console]::OutputEncoding = [System.Text.Encoding]::Unicode

screenshot

oder wandle das Encoding des Output des Befehls um.

Gruß siddius
derhoeppi
derhoeppi 21.07.2023 um 09:47:48 Uhr
Goto Top
Vielen Dank
auf das Encoding wäre ich definitiv nicht gekommen. Den Output wollte ich nicht in eine Datei umleiten von daher ist der zweite Punkt der bessere (für mich).
7907292512
7907292512 21.07.2023 aktualisiert um 09:51:40 Uhr
Goto Top
Das erste war ja auch nur dafür gedacht das du selbst am Output siehst das es Unicode kodiert ist, also quasi nur ein Wink mit dem Zaunpfahl face-smile.