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-Key: 7912867545

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

Printed on: April 27, 2024 at 08:04 o'clock

Mitglied: 7907292512
Solution 7907292512 Jul 21, 2023 updated at 07:45:21 (UTC)
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
Member: derhoeppi
derhoeppi Jul 21, 2023 at 07:47:48 (UTC)
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).
Mitglied: 7907292512
7907292512 Jul 21, 2023 updated at 07:51:40 (UTC)
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.