PowerShell Umlaute ersetzen?
Hallo zusammen,
hat jemand ein PowerShell Skript womit ich in einem String / Variable in einem PS Skript das Umlaute (ein oder mehrere) enthält (ö,ü,ä) durch entsprechend oe,ue,ae ersetzen kann? Das wäre klasse :)
2 Antworten
@FigureEights Lösung ist zwar richtig, aber nicht wirklich schön...
Bis Powershell 5.1(Windowsstandard einfach die .PS1 (Scriptdatei) im Editor als UTF-8 mit BOM speichern, dann kann Powershell auch mit Umlauten umgehen.
Ab Powershell 6 genügt UTF-8 ohne BOM...
Eine Alternative um Powershellcode mit Umlauten richtig anzuzeigen, wäre PS-hybrid-Batch:
demo.cmd
<# : Batch Abschnitt ,Batch sieht in dieser Zeile die Eingabe aus der Datei # an ein SprungLabel, Powershell sieht den begin eines Kommentars.
start "" powershell "iex (gc '%~f0' -Encoding UTF8 -Raw | out-string)"
exit /b
: Ende Batch und Powershellkommentar #>
#Ab hier beliebiger Powershellcode
Write-Host 'Test blüblkälöß' -fo green
pause
...einfach UTF-8 codiert speichern... klappt so auch unter Powershell 2 bis 5.1. Hat zudem den Vorteil, das man nicht mit Rechtsklick starten muss!
Du kannst die Methode Replace() verwenden:
$var = $var.Replace("ä", "ae").Replace("ö", "oe").Replace("ü", "ue").Replace("Ä", "Ae").Replace("Ö", "Oe").Replace("Ü", "Ue")
Für $var nutzt du natürlich deine Variable/String.
Ich verwende das ganze im Azure Automation Skript