Benutzer mit den meisten Antworten
ini-Datei nach Variable durchsuchen und entsprechenden Wert ausgeben

Frage
-
Hallo Zusammen,
ich habe folgende Herausforderung (für mich :-) ).
ich habe eine ini-Datei, in der habe ich unter anderem folgende Zeile
NOTESInipath C:\lotus\domino
ich möchte jetzt die ini nach dem String NOTESInipath durchsuchen und mir soll dann C:\lotus\domino ausgegeben werden, damit ich den dann weiter verwenden kann.
Das Einlesen einer Datei in eine Variable ist ja kein Problem, auch das Suchen nach einem definierten String, aber wie muss ich es anstellen, dass wenn er den String findet, den Text dahinter aus der Zeile nimmt?
Danke im Voraus für Eure Tipps
Tobi
Antworten
-
Das erledigt der Operator -split für dich :
Get-Help about_split
Split benutzt intern Regex um die Strings zu splitten, also könnte man das auch unbequemer direkt mit Regex erledigen
Ein Beispiel mit -split:
$IniFile = 'C:\temp\test.txt' # Name und Value ausgeben Get-Content $IniFile | Where-Object { $_ -like "*NOTESInipath*" } | ForEach-Object {-split $_} # oder # Nur Namen ausgeben Get-Content $IniFile | Where-Object { $_ -like "*NOTESInipath*" } | ForEach-Object { (-split $_)[0]} # Nur Value ausgeben Get-Content $IniFile | Where-Object { $_ -like "*NOTESInipath*" } | ForEach-Object { (-split $_)[1]}
Hier wird ein Array erzeugt und mithilfe von den Indexnummer (0 und 1) werden die einzelnen Werte ausgelesen.
Du kannst auch die Split Funktion von dem Typ String verwenden, der geht aber nicht so sauber mit leerzeichen um :
$IniFile = 'C:\temp\test.txt' # Name und Value ausgeben Get-Content $IniFile | Where-Object { $_ -like "*NOTESInipath*" } | ForEach-Object {$_.split()}
Bei "echten" Ini Files werden gleichheitszeichen verwendet siehe hier:
http://blogs.technet.com/b/heyscriptingguy/archive/2011/08/20/use-powershell-to-work-with-any-ini-file.aspx
Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '- Bearbeitet Peter Kriegel Freitag, 29. Juni 2012 12:39
- Als Antwort markiert Tobias Girndt Freitag, 29. Juni 2012 13:01
Alle Antworten
-
Das erledigt der Operator -split für dich :
Get-Help about_split
Split benutzt intern Regex um die Strings zu splitten, also könnte man das auch unbequemer direkt mit Regex erledigen
Ein Beispiel mit -split:
$IniFile = 'C:\temp\test.txt' # Name und Value ausgeben Get-Content $IniFile | Where-Object { $_ -like "*NOTESInipath*" } | ForEach-Object {-split $_} # oder # Nur Namen ausgeben Get-Content $IniFile | Where-Object { $_ -like "*NOTESInipath*" } | ForEach-Object { (-split $_)[0]} # Nur Value ausgeben Get-Content $IniFile | Where-Object { $_ -like "*NOTESInipath*" } | ForEach-Object { (-split $_)[1]}
Hier wird ein Array erzeugt und mithilfe von den Indexnummer (0 und 1) werden die einzelnen Werte ausgelesen.
Du kannst auch die Split Funktion von dem Typ String verwenden, der geht aber nicht so sauber mit leerzeichen um :
$IniFile = 'C:\temp\test.txt' # Name und Value ausgeben Get-Content $IniFile | Where-Object { $_ -like "*NOTESInipath*" } | ForEach-Object {$_.split()}
Bei "echten" Ini Files werden gleichheitszeichen verwendet siehe hier:
http://blogs.technet.com/b/heyscriptingguy/archive/2011/08/20/use-powershell-to-work-with-any-ini-file.aspx
Please click “Mark as Answer” if my post answers your question and click Vote as Help if my Post helps you.
Bitte markiere hilfreiche Beiträge von mir als Hilfreich und Beiträge die deine Frage ganz oder teilweise beantwortet haben als Antwort.
My PowerShell Blog http://www.admin-source.info
[string](0..21|%{[char][int]([int]("{0:d}" -f 0x28)+('755964655967-86965747271757624-8796158066061').substring(($_*2),2))})-replace' '- Bearbeitet Peter Kriegel Freitag, 29. Juni 2012 12:39
- Als Antwort markiert Tobias Girndt Freitag, 29. Juni 2012 13:01
-
Hallo Peter,
mit split hatte ich auch schon , ich will mal sagen, rumexperimentiert, aber letztendlicht doch nichts Brauchbares rausbekommen. Jetzt hab ich es auch verstanden und kann damit arbeiten.
Vielen Dank für die schnelle Hilfe.
Schönes WE
Tobi