Sonderzeichen und Umlaute in Batchdateien
Einige Sonderzeichen und vor allem Umlaute bereiten in Batchdateien Probleme, da diese im falschen Format ausgegeben werden und somit die Batchdatei unbrauchbar wird. Da in einigen Fällen die Verwendung von Umlauten nicht vermieden werden kann (z.B. Profilordner), möchte ich hier kurz zeigen, wie Umlaute und Sonderzeichen in Batchdateien verwendent werden können.
Ausgangssituation
Eine Batchdatei, welche in der Verarbeitung Umlaute enthält:

Die Ausführung dieser Batchdatei ergibt folgende Ausgabe:

Die Ursache hierfür ist, dass die Batchdatei im UTF-8 Format (Zeichensatz) gespeichert ist und die Ausführung im DOS-Latin-1 Format (Zeichensatz) erfolgt. Um dieses Problem zu beheben, muss lediglich die Batchdatei im gleichen Format (Zeichensatz) gespeichert sein, wie die Ausführung erfolgt.
Vorgehen
Zunächst müssen wir die Codepage/Zeichentabelle auf 1252 (ANSI) umstellen.
Ohne der Angabe einer Codepage mit Hilfe des Befehles „chcp“ wird die Standard Codepage 850 (DOS-Latin-1) verwendet. Die Angabe der Codepage ist nur einmalig in der Batchdatei vorzunehmen, dies am Besten am Anfang, da diese für alle weiteren Befehle ab diesen Zeitpunkt aktiv ist. Der Befehl hierfür lautet: „chcp 1252„

Die Anpassung der Codepage allein genügt nicht, die Ausführung der Batchdatei ergibt nun folgende Ausgabe:

Zusätzlich ist es notwendig, dass die Batchdatei im ANSI Format gespeichert wird. Dies erfolgt im „Speichern unter“ Dialog in Notepad im Bereich „Codierung:“. Hier ist von UTF-8 auf ANSI zu wechseln. Anschließend kann auf Speichern geklickt werden.


Die Aktuelle Codierung wird in Notepad auch im unteren Bereich jeweils angezeigt.

Die Ausführung dieser Batchdatei ergibt nun unser gewünschtes Ergebnis.

Da hier beide Zeichensätze übereinstimmen. Zum einen ist die Batchdatei im ANSI Format (Zeichensatz) gespeichert und zum anderen wird mit Hilfe von chcp 1252 ebenfalls der ANSI Zeichensatz zur Ausführung der Batchdatei genutzt.
Wenn ich Dir weiterhelfen konnte, würde ich mich sehr freuen, wenn du eine Spende via Paypal hier lassen könntest, oder mir einen Kaffee über ko-fi.com ausgeben würdest.Dir weiterhelfen konnte, würde ich mich sehr freuen, wenn du mir einen Kaffee ausgeben würdest.
3 Replies to “Sonderzeichen und Umlaute in Batchdateien”
Klar doch, chcp 1252. Da hätte ich auch selber drauf kommen können ^^
Vielen dank für den Artikel, hat mir sehr geholfen.
Sonderzeichen und Umlaute in Batchdateien
Ich habe ein seltsames Problem. Wenn ich die oben angeführten Anweisungen befolge, sieht alles exakt genau so aus wie hier beschrieben. Wenn ich dann aber eine neue Batch-Datei schreibe, in die erste Zeile „CHCP 1252“ setze und als ANSI-Datei speichere wird das „ö“ aber wieder falsch interpretiert. Meine Zeile sieht dann in etwa so aus: „copy D:\1. Schule Tµssfeld\Datei1.txt“ „D: \1. Schule Tµssfeld\Verz1“, und dann kommt folglich die Fehlermeldung, dass die Datei nicht gefunden wurde. Jetzt bin ich wirklich ratlos… und dieser Ansatz ist nicht der erste vielversprechende, den ich erfolglos ausprobiert habe 🙁
Ich hoffe, ich bekomme hier endlich einen entscheidenden Tipp!
(Windows 11, (neueste) Version 10.0.26100.2605
Windows-Editor 11.2410.21.0
Es scheint, als wenn die Batchdatei aus irgendwelchen Gründen nicht im ANSI Format gespeichert wurde. Alternativ kann man auch folgendes probieren: copy „D:\1. Schule T\xF6ssfeld\Datei1.txt“ „D:\1. Schule T\xF6ssfeld\Verz1“