PowerShell String manipulieren

In diesem Artikel zeige ich ein paar Beispiele für das Manipulieren von Strings (Zeichenketten)  

.ToUpper()

Wandelt einen String in Großbuchstaben um

$("test").ToUpper()

Ausgabe:

TEST

.ToLower()

Wandelt einen String in Kleinbuchstaben um

$("TEST").ToLower()

Ausgabe:

test

.Contains()

Testet einen String, ob eine bestimmte Zeichenfolge vorhanden ist

$("TEST").Contains("ES")

Ausgabe:

True

.StartsWith()

Testet einen String, ob dieser mit einer bestimmten Zeichenfolge beginnt.

$("TEST").StartsWith("TE")

Ausgabe:

True

.EndsWith()

Testet einen String, ob dieser mit einer bestimmten Zeichenfolge endet.

$("TEST").EndsWith("ST")

Ausgabe:

True

.Replace()

Ersetzt eine bestimmte Zeichenfolge innerhalb eines Strings

$("TEST").Replace("TE","ersetzt")

Ausgabe:

ersetztST

.Substring()

Ersetzt Teile eines Strings anhand derer Position

$("TEST").Substring("1")

 1 ... nach dem ersten Zeichen

Ausgabe:

EST

hier ein weiters Beispiel: Anfang und Endposition:

$("TEST").Substring("1","2")

1 ... nach dem ersten Zeichen

2 ... bis zum 2ten Zeichen

Ausgabe:

ES

 

Sollte nur die Endposition verwendet werden, sieht das so aus:

$("TEST").Substring("","3")

Ausgabe:

TES

.TrimStart()

Entfernt bestimmte Zeichen zu Beginn des Strings:

$("TEST").TrimStart("TE")

Ausgabe:

ST

 

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!


veröffentlicht am 10.10.2016 von Bernhard
geändert am 03.10.2017 von Bernhard



Kommentare


(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]
✍anonym
erstellt am 02.10.2017 10:10
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
✍Bernhard
erstellt am 02.10.2017 10:10
danke, habe ich korrigiert

erstellt von Bernhard

✍anonym
erstellt am 19.04.2017 15:04
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?

✍anonym
erstellt am 28.08.2020 14:08
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

✍anonym
erstellt am 25.06.2018 13:06
User: Philipp 
Neben TrimStart war für mich auch TrimEnd ganz nützlich, funktioniert ähnlich zu TrimStart ;)

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Mehr Details