Windows PowerShell - Ein bestimmtes Zeichen in einem Wort in Großschreibung
Hallo werte Gemeinde,
Mittels "ToUpper()" kann ich zwar ein ganzes Wort oder einen ganzen String groß schreiben. Kann ich aber auch ein- oder mehrere, bestimmte Zeichen groß schreiben, so dass die restlichen Zeichen unberührt bleiben?
Beispiel: "muellerm" soll zu "MuellerM" geändert werden
mfG KR
Mittels "ToUpper()" kann ich zwar ein ganzes Wort oder einen ganzen String groß schreiben. Kann ich aber auch ein- oder mehrere, bestimmte Zeichen groß schreiben, so dass die restlichen Zeichen unberührt bleiben?
Beispiel: "muellerm" soll zu "MuellerM" geändert werden
mfG KR
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 209033
Url: https://administrator.de/forum/windows-powershell-ein-bestimmtes-zeichen-in-einem-wort-in-grossschreibung-209033.html
Ausgedruckt am: 22.04.2025 um 20:04 Uhr
6 Kommentare
Neuester Kommentar
Hallo @kaeckchen,
klar, wenn du den String davor auseinandernimmst und danach wieder zusammensetzt.
Schreib dir doch 2 Funktionen, welche einen String und eine Position entgegennehmen und dann auf die entsprechende Stelle ein toUpper oder toLower macht.
Gruß,
@Snowman25
klar, wenn du den String davor auseinandernimmst und danach wieder zusammensetzt.
Schreib dir doch 2 Funktionen, welche einen String und eine Position entgegennehmen und dann auf die entsprechende Stelle ein toUpper oder toLower macht.
Gruß,
@Snowman25
Angenommen, du hast muellerm und möchtest daraus MuellerM machen (1. und letzen Buchstaben groß), dann geht das so:
Gruß,
@Snowman25
$name = "muellerm"
$name = $($name.substring(0,1).ToUpper() + $name.substring(1,($name.Length-2)) + $name.substring($name.Length-1).ToUpper())
Gruß,
@Snowman25
Hallo kaekchen,
und wenn du das Objekt [System.String] mit einer Funktion erweiterst steht dir die Funktion in Zukunft bei jedem String zur Verfügung. Das ganze machst du so :
Zuerst erstellst du eine Datei namens "StringExtension.ps1xml" im Verzeichnis
dann öffnest du dein Powershell Profil-Script(meistens unter
wenn die Datei noch nicht vorhanden ist, legst du sie an.
Dann fügst folgende Zeile hinzu und speicherst die Datei:
Ab jetzt ist in jeder neuen Powershell-Session bei jedem [String]-Objekt die Funktion upperFirstandLast() vorhanden die den ersten und letzten Buchstaben groß macht.
Zusätzlich noch die Funktion toUpperByIndex() mit dem man direkt den Index des Buchstabens angeben kann der groß geschrieben werden soll.
Beispiele:
= MuellerM
= mUellerm
Grüße Uwe
und wenn du das Objekt [System.String] mit einer Funktion erweiterst steht dir die Funktion in Zukunft bei jedem String zur Verfügung. Das ganze machst du so :
Zuerst erstellst du eine Datei namens "StringExtension.ps1xml" im Verzeichnis
C:\Windows\System32\WindowsPowerShell\v1.0
mit folgenden Inhalt:<?xml version="1.0" encoding="utf-8" ?>
<Types>
<Type>
<Name>System.String</Name>
<Members>
<ScriptMethod>
<Name>upperFirstandLast</Name>
<Script>
$($this.substring(0,1).ToUpper() + $this.substring(1,($this.Length-2)) + $this.substring($this.Length-1).ToUpper())
</Script>
</ScriptMethod>
</Members>
</Type>
<Type>
<Name>System.String</Name>
<Members>
<ScriptMethod>
<Name>toUpperByIndex</Name>
<Script>
$index = $args
$arr = $this.toCharArray()
$arr[$index] = $arr[$index].toString().toUpper()
[System.String]::Join($strFinal,$arr)
$strFinal
</Script>
</ScriptMethod>
</Members>
</Type>
</Types>
"C:\Users\[USERNAME]\Documents\WindowsPowerShell\Microsoft.Powershell_profile.ps1"
)wenn die Datei noch nicht vorhanden ist, legst du sie an.
Dann fügst folgende Zeile hinzu und speicherst die Datei:
Update-TypeData -PrependPath "$pshome\StringExtension.ps1xml"
Ab jetzt ist in jeder neuen Powershell-Session bei jedem [String]-Objekt die Funktion upperFirstandLast() vorhanden die den ersten und letzten Buchstaben groß macht.
Zusätzlich noch die Funktion toUpperByIndex() mit dem man direkt den Index des Buchstabens angeben kann der groß geschrieben werden soll.
Beispiele:
("muellerm").upperFirstandLast()
("muellerm").toUpperByIndex(1)
Grüße Uwe