Problem gelöst:cmd, BATch Umlaute Windows robocopy chcp 1252
Probleme mit Umlauten in Batch (CMD) Dateien liegen an der Verwendung unterschiedlicher Zeichensätze. So klappt beispielsweise das Kopieren eines Ordners mit Umlauten nicht, da das Batch-Skript diese nicht richtig interpretiert. Wer ein Video bevorzugt, kann sich dazu mein YouTube-Video ansehen.
das Problem: OEM 850, ANSI, UTF-8
DOS und auch die Eingabeaufforderung verwendet OEM 850 und nicht ANSI oder UTF-8 als Zeichensatz.
Die Batch-Datei wird über den Editor (Notepad) mit Windows-1255 angelegt.
Notepad - chcp 1252
Wer den Standard-Windows Editor (Notepad) verwendet, kann einfach am Beginn der cmd-Datei den Zeichensatz auf 1252 stellen:
chcp 1252
Damit wird die Eingabeaufforderung auf den Zeichensatz 1252 geändert und die mit Notepad abgespeicherte Batch-Datei (im Format 1255) funktioniert.
Wer die Eingabeaufforderung weiter mit 850 betreiben will, kann alternativ mittels Notepad++ den Zeichensatz der Datei auf 850 oder 852 stellen:
User: Nod15c
Daten in Excel kopieren/erstellen mit Dateityp - Text (MS-DOS) speichern.
Dateiendungen einblenden im Explorer und .txt zu .cmd wandeln.
A
anonym
Und für diejenigen, die kein Excel nutzen wollen/können:
Einfach das in jedem Windows enthaltene Wordpad nehmen. Der Vorgang bleibt (fast) der gleiche.
Daten in Wordpad kopieren/erstellen > Speichern unter > Dateityp: Textdokument - MS-DOS-Format (*.txt) >> Vorsicht, es wird außerdem Unicode (*.txt) und Text (*.txt) angeboten!
Dateiendungen einblenden im Explorer und .txt zu .cmd umbenennen.
A
anonym
User: Rainer
Danke …
A
anonym
User: Roger
ich muss via Commandozeile "C:\Ausführbare Tools\tool.exe" aufrufen aber wegen dem ü geht das nicht, wie macht man dass?
A
anonym
Keine Ahnung ob CHCP 65001 && "C:\Ausführbare Tools\tool.exe" etwas bringt, da CHCP 65001 vorher auf UTF-8 umstellt, wo auch Umlaute im Zeichensatz vorhanden sind. Eventuell sollte man möglichst auf Umlaute/Sonderzeichen verzichten, zumindest was Ordner/Dateinamen betrifft.
A
anonym
User: Hilfesuchender
Danke, funktioniert und hat mir sehr geholfen.
A
anonym
User: Anonymous
Für UTF-8 Dateien am Anfang "chcp 65001" verwenden.
Das Setzen der Codepage am Anfang der Batch-Datei erscheint mir die sauberste Lösung, weil man grundsätzlich nicht wissen kann welche Codepage die Shell (cmd) benutzt, besonders wenn die Datei auch auf anderen Rechnern ausgeführt wird. Bei mir z.B. war die Codepage der Shell 437 statt 850.
A
anonym
User: TH
Perfekt. Danke für die Anleitung :)
A
anonym
User: BlogLeser
Wieso soll man die Kodierung/Encoding auf OEM 852 stellen, wenn die Codepage 850 anzeigt?
Die richtige Einstellung ist also Kodierung -> Weitere -> Westeuropäisch -> OEM 850.
Dann kann man im Batch selber äöü verwenden, die werden im Batch und in der Ausgabe richtig dargestellt.
A
anonym
User: BlogLeser
Die Sprache/Language würde ich aktuell eher mit B und Batch wählen. Das gibt die wesentlich schönere Syntax-Anzeige in Notepad++
A
anonym
User: Martin
Für Notepad++ gibt es ein schönes Plugin "AutoCodepage", mit der man die Umstellung der Codepage in Notepad++ automatisch für alle .BAT-Dateien erledigen lassen kann.
A
anonym
User: AL
Super, hat mir geholfen!
A
anonym
User: Mario Z.
Einfach anfangs in Batch schreiben:
chcp 1252>nul
SET ue=ü
SET ae=ä
SET oe=ö
SET Uue=Ü
SET Aae=Ä
SET Ooe=Ö
SET ss=ß
chcp 850>nul
REM Der süße Bär
ECHO Der s%ue%%ss%e B%ae%r
A
anonym
User: Norbert
Danke
@Notepad: Codierung setzten hat unter win10 gereicht
Fragen / Kommentare