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

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

Printed on: April 18, 2024 at 01:04 o'clock

Mitglied: 134464
Solution 134464 Oct 23, 2017 updated at 07:10:56 (UTC)
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.