Kommentare: PowerShell String manipulieren: substring etc.
Beitrag erstellt von Bernhard
| Veröffentlicht: 10.10.2016
| Aktualisiert: 02.10.2017 |
Translation English
|🔔
| Kommentare:6
Fragen / Kommentare zu PowerShell String manipulieren: substring etc.
(neueste zuerst)User: Philipp $("TEST").Substring("","3") ergibt TES und nicht EST Hier Zitat von oben ;) Sollte nur die Endposition verwendet werden, sieht das so aus: PowerShell $("TEST").Substring("","3") Ausgabe: EST
danke, habe ich korrigiert
Beitrag erstellt von Bernhard
User: Daniel Hallo Wie würde denn so etwas unter einer PS-String-Manipulation funktionieren: Ich lese eine Parameterliste aus einem Konfig-File ein und schneide das Keyword weg: foreach ($p in get-content DC_progs.cfg){ if($p.contains("CMOD_DIRS=") = "true"){ write-host $p $cmod_dirs = $p.replace("CMOD_DIRS=", "") write-host $cmod_dirs } } Resultat: CMOD_DIRS=ond_doks\scanning;ond_kasse_zgkb;ond_doks\holdmail;ond_doks\privor; ond_doks\scanning;ond_kasse_zgkb;ond_doks\holdmail;ond_doks\privor; nun müsste ich diese Liste in ein array ablegen: unter RapidQ gibt es so eine schöne INSTR-Funktion: if(INSTR($p, ";") > 0) then ai = INSTR($p, ";") ' -> ai = 18 b_dir$ = MID$($p, 1, ai - 1) ' -> split pos 1- pos 17 = ond_doks\scanning usw für die anderen Elemente der Liste Gibst es so etwas auch unter PS?
Die Antwort kommt vielleicht etwas spät, aber mag anderen noch helfen: Die Methode gibt es in PowerShell und nennt sich "split". Das kannst du einfach hinter die andere Methode "replace" hängen. Würde dann bei deinem Beispiel in etwa so aussehen: $dccfg = Get-Content DC_progs.cfg foreach ($p in $dccfg){ if($p.contains("CMOD_DIRS=")){ $p $cmod_dirs = $p.replace("CMOD_DIRS=","").split(";") $cmod_dirs } } Resultat: CMOD_DIRS=ond_doks\scanning;ond_kasse_zgkb;ond_doks\holdmail;ond_doks\privor; ond_doks\scanning ond_kasse_zgkb ond_doks\holdmail ond_doks\privor Wenn man "Write-Host" in der Ausgabe weglässt, wird es auch etwas besser sichtbar, dass man nun eine Liste zurück bekommt. LG Chris
Beitrag erstellt von anonym
replace und substring funktionieren bei mir aus irgendeinem grund nicht. Sie werden auch nicht bei den Vorschlägen für den "nächsten" Befehl vorgeschlagen
User: Philipp Neben TrimStart war für mich auch TrimEnd ganz nützlich, funktioniert ähnlich zu TrimStart ;)