Powershell String formatieren
Hallo,
ich habe ein Skript das einen Netzwerkswitch ausliest. Das hat bis dato auch funktioniert, aber mit einem Firmwareupdate hat sich der Output verändert. Bisher wurde die VLAN Konfiguration in einer Zeile geschrieben. Nun sind es je nach Portkonfiguration 2 oder mehr Zeilen. Wie kann ich jedoch die Zeilen zusammenführen und wie kann ich es dynamisch halten, so dass es mal nur eine, mal zwei oder eben auch drei oder vier Zeilen sind?
Der Putty Output sieht derzeit so aus
Als der Output für die VLANs bis dato einzeilig war, war die Weiterverarbeitung einfach. Nur jetzt könnte ich vermutlich die ganze Sache starr machen, aber wie kann ich es dynamisch halten, so dass er die VLANs ab VLANs: bis Private-VLAN in ein Array schreibt.
Gruß
derhoeppi
ich habe ein Skript das einen Netzwerkswitch ausliest. Das hat bis dato auch funktioniert, aber mit einem Firmwareupdate hat sich der Output verändert. Bisher wurde die VLAN Konfiguration in einer Zeile geschrieben. Nun sind es je nach Portkonfiguration 2 oder mehr Zeilen. Wie kann ich jedoch die Zeilen zusammenführen und wie kann ich es dynamisch halten, so dass es mal nur eine, mal zwei oder eben auch drei oder vier Zeilen sind?
Der Putty Output sieht derzeit so aus
Openflow: disabled
VLANs: 50,101-102
105-106,115-121
123-132,134,136-139
Private-VLAN: disabled
Als der Output für die VLANs bis dato einzeilig war, war die Weiterverarbeitung einfach. Nur jetzt könnte ich vermutlich die ganze Sache starr machen, aber wie kann ich es dynamisch halten, so dass er die VLANs ab VLANs: bis Private-VLAN in ein Array schreibt.
Gruß
derhoeppi
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 293668
Url: https://administrator.de/contentid/293668
Ausgedruckt am: 24.11.2024 um 02:11 Uhr
1 Kommentar
$output = @"
Openflow: disabled
VLANs: 50,101-102
105-106,115-121
123-132,134,136-139
Private-VLAN: disabled
"@
$arr = [regex]::Matches(($output|out-string)'(?is)(\d+-\d+|\d+)').Captures | %{$_.Groups[1].Value}
$arr
$output = @"
Openflow: disabled
VLANs: 50,101-102
105-106,115-121
123-132,134,136-139
Private-VLAN: disabled
"@
$raw = [regex]::Match(($output|out-string),'(?is)VLANs:(.*)Private-VLAN').Groups[1].Value
$arr = [regex]::Matches($raw,'(?is)(\d+-\d+|\d+)').Captures | %{$_.Groups[1].Value}
$arr
Gruß jodel32