Umlaute in Batch-Datei bei Ausgabe richtig darstellen
Guten Morgen zusammen,
ich habe eine Batch, die bspw. eine Benutzerabfrage á la "Möchten Sie wirklich... (J/N)" im Fenster anzeigt.
Nun bekommen die Benutzer üblicherweise statt dem "ö" irgendeinen Platzhalter z.B. "%" angezeigt.
Wie kann ich bewerkstelligen, dass im CMD-Fenster ü, ö, ä usw. angezeigt werden?
Bitte keine Vorschläge wie "schreib doch oe statt ö" oder philosophische Einwände von wegen "in der altehrwürdigen EDV gibt's keine Umlaute", das sehe ich im Backend grundsätzlich auch so, aber es muss doch trotzdem eine Möglichkeit geben...
Ich habe es schon mit verschiedenen Codepages versucht, aber die Umstellung in der Batch am Anfang wirkt sich irgendwie so gar nicht auf den Rest aus... kann hier jemand helfen?
Vielen Dank
Gruß
Larz
ich habe eine Batch, die bspw. eine Benutzerabfrage á la "Möchten Sie wirklich... (J/N)" im Fenster anzeigt.
Nun bekommen die Benutzer üblicherweise statt dem "ö" irgendeinen Platzhalter z.B. "%" angezeigt.
Wie kann ich bewerkstelligen, dass im CMD-Fenster ü, ö, ä usw. angezeigt werden?
Bitte keine Vorschläge wie "schreib doch oe statt ö" oder philosophische Einwände von wegen "in der altehrwürdigen EDV gibt's keine Umlaute", das sehe ich im Backend grundsätzlich auch so, aber es muss doch trotzdem eine Möglichkeit geben...
Ich habe es schon mit verschiedenen Codepages versucht, aber die Umstellung in der Batch am Anfang wirkt sich irgendwie so gar nicht auf den Rest aus... kann hier jemand helfen?
Vielen Dank
Gruß
Larz
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 125470
Url: https://administrator.de/contentid/125470
Ausgedruckt am: 16.11.2024 um 12:11 Uhr
23 Kommentare
Neuester Kommentar
Hallo Larz,
ja ich meinte notepad++ , aber scheinbar kann der auch nicht im erforderlichen ASCII speichern, werde nochmal probieren.
schau mal hier: Umlaute in Textdatei mit Eingabeaufforderung korrekt wiedergeben?
Gruß
Andreas
ja ich meinte notepad++ , aber scheinbar kann der auch nicht im erforderlichen ASCII speichern, werde nochmal probieren.
schau mal hier: Umlaute in Textdatei mit Eingabeaufforderung korrekt wiedergeben?
Gruß
Andreas
Es handelt sich um das typische ASCII - ANSI - Problem. ANSI - Codepage zB. 1252, ASCII-Codepage zB. 850 in deutschen Landen. Kirschi hat also Recht, edit.com arbeitet mit der ASCII - Codepage, genau wie der Commandline - Interpreter. Wenn du dort Umlaute schreibst, werden sie korrekt angezeigt. Alternativ kannst du einen Editor nutzen, bei dem du die Codepage einstellen kannst, oder die Codepage im Batch mittels CHCP af1252 umstellen.
Grüße
rubberman
Grüße
rubberman
Aber nur bei der Ausgabe in der Console selbst. Wenn du z. B. nach Zeile 02 noch ein md Müller einfügst, wirst du feststellen, dass das Verzeichnis mit dem gewünschten Namen auch korrekt angelegt wird.
Es gibt imo keine Möglichkeit, die Ausgabe in der Console genau so anzuzeigen, wie sie auch bei der Ausführung verwendet wird, wenn Nicht-Ascii-Zeichen verwendet werden.
Edit: Rest entfernt, da Müll.
Es gibt imo keine Möglichkeit, die Ausgabe in der Console genau so anzuzeigen, wie sie auch bei der Ausführung verwendet wird, wenn Nicht-Ascii-Zeichen verwendet werden.
Edit: Rest entfernt, da Müll.
Notepad++ cotiert afaik nur in ANSI und den von dir geposteten Zeichencodes.
Es gibt andere Editoren (ich nutze z.B. die Freeware PSPad), die die OEM Codepage unterstützen.
Aber (auch wenns etwas spät kommt) per Änderung der Codepage im Batch geht das schon - nur etwas anders als von dir vermutet:
Es gibt andere Editoren (ich nutze z.B. die Freeware PSPad), die die OEM Codepage unterstützen.
Aber (auch wenns etwas spät kommt) per Änderung der Codepage im Batch geht das schon - nur etwas anders als von dir vermutet:
@echo off &setlocal
chcp 1252>nul
set "text=Müller"
chcp 850>nul
echo %text%
pause
Hallo nochmal,
ich habe heute mal geschaut und nichts gefunden, daß Notepad++ ASCII unterstützt. So bleibt wohl nur der Weg wie Du und ich ihn auch mache, über die edit.com. Einen anderen freien Editor habe ich auch nicht gefunden, mit Ausnahme von Emacs, aber den zu bedienen...
EDIT:
@rubberman
danke für den Editor-Tipp
Andreas
ich habe heute mal geschaut und nichts gefunden, daß Notepad++ ASCII unterstützt. So bleibt wohl nur der Weg wie Du und ich ihn auch mache, über die edit.com. Einen anderen freien Editor habe ich auch nicht gefunden, mit Ausnahme von Emacs, aber den zu bedienen...
EDIT:
@rubberman
danke für den Editor-Tipp
Andreas
Hallo an Alle!
Für Notepad++ gibt es das "ConvertExt"-Plugin (hier zu finden) - dieses kann allerdings nur mit der ANSI-, nicht mit der Unicode-Version verwendet werden.
Die ANSI-Version ist in der gezipten Downloadversion auf der sourceforge-Downloadseite enthalten.
Grüße
bastla
Notepad++ cotiert afaik nur in ANSI und den von dir geposteten Zeichencodes.
Als Ergänzung:Für Notepad++ gibt es das "ConvertExt"-Plugin (hier zu finden) - dieses kann allerdings nur mit der ANSI-, nicht mit der Unicode-Version verwendet werden.
Die ANSI-Version ist in der gezipten Downloadversion auf der sourceforge-Downloadseite enthalten.
Grüße
bastla
DU hast meinen Tag gerettet ! :T
TOP ! Der Tipp funktioniert und ist mit wenig Aufwand verbunden !
Leider verliert man in dieser Ansicht die farbliche Unterteilung der Datei,
daher erstelle ich das Skript ab jetzt in der Auswahl Sprache -> B -> Batch und änder dann zum Schluss, wie von dir beschrieben auf M -> MS-DOS Stil und passe dann die Umlaute an.
Danke für deinen Tipp, danach suche ich schon was länger !!
Gruß yaka
TOP ! Der Tipp funktioniert und ist mit wenig Aufwand verbunden !
Leider verliert man in dieser Ansicht die farbliche Unterteilung der Datei,
daher erstelle ich das Skript ab jetzt in der Auswahl Sprache -> B -> Batch und änder dann zum Schluss, wie von dir beschrieben auf M -> MS-DOS Stil und passe dann die Umlaute an.
Danke für deinen Tipp, danach suche ich schon was länger !!
Gruß yaka
Hallo,
Ist zwar schon 'ne Weile her, aber evtl. kann es ja noch mal jemand brauchen (so wie ich heute ^^) :
Man kann in Notepad++ seine vorhandene Batch Datei konvertieren :
Kodierung -> Zeichensatz -> Westeuropäisch -> OEM 850
Man bekommt eine Warnung, das dies nicht rückgängig gemacht werden kann (zumindest nicht automatisch).
Hintergrund ist, das vorhandene Umlaute in ihre CP850 äquivalente umgewandelt werden (z.B. ä=├ñ, ö= ├Â, ü= ├╝).
Man muss also seine Batch noch einmal auf Umlaute überprüfen (ggf. Suchen&Ersetzen) und dann speichern.
Die Kodierung bleibt dann im gewähltem Zeichensatz.
Hat den Vorteil das man nicht von Batch auf MS-DOS umstellen muss, und damit die Syntaxhervorhebung verliert.
Ist zwar schon 'ne Weile her, aber evtl. kann es ja noch mal jemand brauchen (so wie ich heute ^^) :
Man kann in Notepad++ seine vorhandene Batch Datei konvertieren :
Kodierung -> Zeichensatz -> Westeuropäisch -> OEM 850
Man bekommt eine Warnung, das dies nicht rückgängig gemacht werden kann (zumindest nicht automatisch).
Hintergrund ist, das vorhandene Umlaute in ihre CP850 äquivalente umgewandelt werden (z.B. ä=├ñ, ö= ├Â, ü= ├╝).
Man muss also seine Batch noch einmal auf Umlaute überprüfen (ggf. Suchen&Ersetzen) und dann speichern.
Die Kodierung bleibt dann im gewähltem Zeichensatz.
Hat den Vorteil das man nicht von Batch auf MS-DOS umstellen muss, und damit die Syntaxhervorhebung verliert.
servus, da werden sie geholfen http://www.libe.net/index.php/Robocopy-Umlaute
Hier meine bat-Datei, die ohne Konvertierung Umlaute anzeigt. Du musst dir die entsprechenden Zeichen nur kopieren. Das mit dem kleinen ü ist etwas tricky.
MfG Frank
MfG Frank
:: = = = = = START = = = = =
@ECHO OFF
CLS
ECHO.
ECHO Umlaute in cmd
ECHO.
ECHO 'ue' ist ein unsichtbares Zeichen (kopieren geht auch wenn mans nicht sieht)
ECHO.
ECHO Hier alle Umlaute hintereinander „ ” Ž ™ š
ECHO.
ECHO.
ECHO ae = „
ECHO oe = ”
ECHO ue =
ECHO.
ECHO AE = Ž
ECHO OE = ™
ECHO UE = š
ECHO.
ECHO.
PAUSE
EXIT
:: = = = = = ENDE = = = = =
Meine (BAT)Lösung sieht wie folgt aus:
Im PSPAD das Dateiformat auf Kamenicky (CP895) einstellen.
Nach dem Abspeichern in dem Format funktioniert die Ausgabe der Umlaute. Die Darstellung der Batch-Datei im Explorer-Fenster ist jedoch nur im ANSI-Format korrekt.
Eine schönere Lösung, die keine Änderung des Formates erforderlich macht, ist es, stattdessen das Skript nicht als Batch sondern als Powershell-Skript auszuführen. D. h. die Extension von .bat auf .ps1 ändern und im Kontextmenü "mit Powershell ausführen" auswählen.
Gruß Jürgen
Im PSPAD das Dateiformat auf Kamenicky (CP895) einstellen.
Nach dem Abspeichern in dem Format funktioniert die Ausgabe der Umlaute. Die Darstellung der Batch-Datei im Explorer-Fenster ist jedoch nur im ANSI-Format korrekt.
Eine schönere Lösung, die keine Änderung des Formates erforderlich macht, ist es, stattdessen das Skript nicht als Batch sondern als Powershell-Skript auszuführen. D. h. die Extension von .bat auf .ps1 ändern und im Kontextmenü "mit Powershell ausführen" auswählen.
Gruß Jürgen
Es geht doch so viel einfacher ...
Wenn man eine Batch-Datei in Notepad++ lädt, zeigt NP++ sie, egal wie sie zuvor gespeichert wurde, als ANSI-Datei an, was dazu führt, dass die Sonderzeichen falsch wiedergegeben werden - sowohl in NP++ als auch später bei der Ausführung.
Um die Datei korrekt abzuspeichern und für die richtige Darstellung bei der Ausführung zu sorgen, muss man folglich bei jeder Bearbeitung erneut die Kodierung ändern:
Kodierung - Weitere ... - Westeuropäisch - OEM 850.
Die Statuszeile zeigt dann "OEM 850" an, und so speichert NP++ die Datei auch ab.
Nun ist die ewige Klickerei für die Kodierung natürlich furchtbar nervig. So geht es viel einfacher und flotter:
Man stelle im NP++-Menü Einstellungen - Tastatur - Main menu, Zeile 219 ("OEM 850") einen geeigneten Shortcut ein, z.B. Alt+8. (Wenn der Shortcut bereits anderweitig vergeben ist - wie im Fall Alt+8 -, gibt es eine Meldung im Kästchen darunter. Ich habe die andere Zuweisung für Alt+8 dann eben entfernt, weil ich die nicht brauche.)
Jetzt öffnet man die Datei, drückt Alt+8 - und los geht die Bearbeitung.
(Die Sprach-Einstellung fürs Syntax-Highlighting ist natürlich "Batch", und die bleibt nach dem ersten Festlegen beim späteren neuen Öffnen der Datei erhalten.)
Wenn man eine Batch-Datei in Notepad++ lädt, zeigt NP++ sie, egal wie sie zuvor gespeichert wurde, als ANSI-Datei an, was dazu führt, dass die Sonderzeichen falsch wiedergegeben werden - sowohl in NP++ als auch später bei der Ausführung.
Um die Datei korrekt abzuspeichern und für die richtige Darstellung bei der Ausführung zu sorgen, muss man folglich bei jeder Bearbeitung erneut die Kodierung ändern:
Kodierung - Weitere ... - Westeuropäisch - OEM 850.
Die Statuszeile zeigt dann "OEM 850" an, und so speichert NP++ die Datei auch ab.
Nun ist die ewige Klickerei für die Kodierung natürlich furchtbar nervig. So geht es viel einfacher und flotter:
Man stelle im NP++-Menü Einstellungen - Tastatur - Main menu, Zeile 219 ("OEM 850") einen geeigneten Shortcut ein, z.B. Alt+8. (Wenn der Shortcut bereits anderweitig vergeben ist - wie im Fall Alt+8 -, gibt es eine Meldung im Kästchen darunter. Ich habe die andere Zuweisung für Alt+8 dann eben entfernt, weil ich die nicht brauche.)
Jetzt öffnet man die Datei, drückt Alt+8 - und los geht die Bearbeitung.
(Die Sprach-Einstellung fürs Syntax-Highlighting ist natürlich "Batch", und die bleibt nach dem ersten Festlegen beim späteren neuen Öffnen der Datei erhalten.)