PowerShell String manipulieren: substring etc.

This page is also available in English

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

.ToUpper()

Wandelt einen String in Großbuchstaben um

PS C:\> $("test").ToUpper()
Result:
TEST

.ToLower()

Wandelt einen String in Kleinbuchstaben um

PS C:\> $("TEST").ToLower()
Result:
test

.Contains()

Testet einen String, ob eine bestimmte Zeichenfolge vorhanden ist

PS C:\> $("TEST").Contains("ES")
Result:
True

.StartsWith()

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

PS C:\> $("TEST").StartsWith("TE")
Result:
True

.EndsWith()

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

PS C:\> $("TEST").EndsWith("ST")
Result:
True

.Replace()

Ersetzt eine bestimmte Zeichenfolge innerhalb eines Strings

PS C:\> $("TEST").Replace("TE","ersetzt")
Result:
ersetztST

.Substring()

Ersetzt Teile eines Strings anhand derer Position

PS C:\> $("TEST").Substring("1")
Result:
EST

hier ein weiters Beispiel: Anfang und Endposition:

PS C:\> $("TEST").Substring("1","2")
Result:
ES
  • 1 ... nach dem ersten Zeichen
  • 2 ... bis zum 2ten Zeichen

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

PS C:\> $("TEST").Substring("","3")
Result:
TES

.TrimStart()

Entfernt bestimmte Zeichen zu Beginn des Strings:

PS C:\> $("TEST").TrimStart("TE")
Result:
ST

 

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

DANKE fĂŒr deine Bewertung!

Aktualisiert: 02.10.2017 von Bernhard 🔔


Top-Artikel in diesem Bereich


Windows PowerShell Skript erstellen und ausfĂŒhren
Im einfachsten Fall ist ein PowerShell-Skript eine Textdatei mit einer Reihe von PowerShell-Befehlen. Als PowerShell Skript versteht man eine Datei mit der Endung .ps1. Die Skriptdatei kann eine Sammlung von Befehlen, Funktionen oder Cmdlets enthalten.

Windows PowerShell Befehle: commands im Überblick
die verfĂŒgbaren PowerShell Befehle können mit dem Befehl:

PowerShell Loops und Array
Ein Array speichert mehrere Werte, Àhnlich einer 2 spaltigen Tabelle.

Fragen / Kommentare


(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]

✍anonym
02.10.2017 08:12
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
gepostet am 02.10.2017 08:12
danke, habe ich korrigiert

Beitrag erstellt von Bernhard

✍anonym
19.04.2017 13:33
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
gepostet am 08.03.2021 11:15
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

✍anonym
28.08.2020 12:40
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
25.06.2018 11:20
User: Philipp 
Neben TrimStart war fĂŒr mich auch TrimEnd ganz nĂŒtzlich, funktioniert Ă€hnlich zu TrimStart ;)