Powershell - Regex - Split
Hallo zusammen.
Ich lese Variablen über eine .ini Datei ein.
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?
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]) } }
$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?
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 352547
Url: https://administrator.de/contentid/352547
Ausgedruckt am: 25.11.2024 um 09:11 Uhr
1 Kommentar
Statt dem Regex Split einen einfachen String Split mit Angabe der maximalen Splitzahl
Oder du machst es per Regex Group-Matching.
P.s. es gibt bereits fertige Funktionen dafür mit Get-IniContent und Set-IniContent.
$_.Split('=',2)
P.s. es gibt bereits fertige Funktionen dafür mit Get-IniContent und Set-IniContent.