internet2107
Goto Top

Powershell - Regex - Split

Hallo zusammen.

Ich lese Variablen über eine .ini Datei ein.

$path_settings = "system.ini"  
Get-Content $path_settings | ForEach-Object -Begin { $settings = @{ } } -Process { $store = [regex]::split($_, '='); if (($store.CompareTo("") -ne 0) -and ($store.StartsWith("[") -ne $True) -and ($store[0].StartsWith("#") -ne $True)) { $settings.Add($store, $store[1]) } }  
Innerhalb der .ini-Datei sieht es dann als Beispiel so aus:
$Variable1=c:\test

Das klappt auch alles wunderbar.
Nur leider habe ich nun das Problem, dass nun neue Variablen ein weiteres "="-Zeichen inkl. haben.

$Variable2=beispiel=1.2=B

Wie kann ich dem Code nun bitte klarmachen, dass es nur das erste "="-Zeichen zu nehmen hat und alle andere =-Zeichen unangetastet bleiben?

Content-ID: 352547

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

Ausgedruckt am: 25.11.2024 um 09:11 Uhr

134464
Lösung 134464 23.10.2017 aktualisiert um 09:10:56 Uhr
Goto Top
Statt dem Regex Split einen einfachen String Split mit Angabe der maximalen Splitzahl
$_.Split('=',2)  
Oder du machst es per Regex Group-Matching.

P.s. es gibt bereits fertige Funktionen dafür mit Get-IniContent und Set-IniContent.