PowerShell Umlaute ersetzen?

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.

Bild zum Beitrag

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!

Bild zum Beitrag

Woher ich das weiß:eigene Erfahrung – Ich mach das seit 30 Jahren
 - (skript, PowerShell, Powershell ISE)  - (skript, PowerShell, Powershell ISE)

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.