Umlautzeichen in einer Batch Datei richtig darstellen?
Guten Morgen!
Folgendes, wenn ich einen Text oder ein Wort in einer Batch Datei habe, welches ein Umlaut enthält, werden diese nicht richtig dar gestellt.
Bsp.: echo Übermorgen ist Mittwoch
Dann kommen anstelle des Ü wirres Zeug raus.
Ich hatte das schon mal gelöst, indem ich aber bei meinem PC irgendwo etwas umgestellt hatte.
Leider weiß ich absolut nicht mehr, was oder wo das war.
Unabhängig davon, kann man dem Batch irgendwie beibringen, dass Umlaute richtig dar gestellt werden?
Vielen Dank für eure Hilfe!
Folgendes, wenn ich einen Text oder ein Wort in einer Batch Datei habe, welches ein Umlaut enthält, werden diese nicht richtig dar gestellt.
Bsp.: echo Übermorgen ist Mittwoch
Dann kommen anstelle des Ü wirres Zeug raus.
Ich hatte das schon mal gelöst, indem ich aber bei meinem PC irgendwo etwas umgestellt hatte.
Leider weiß ich absolut nicht mehr, was oder wo das war.
Unabhängig davon, kann man dem Batch irgendwie beibringen, dass Umlaute richtig dar gestellt werden?
Vielen Dank für eure Hilfe!
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 197754
Url: https://administrator.de/forum/umlautzeichen-in-einer-batch-datei-richtig-darstellen-197754.html
Ausgedruckt am: 23.12.2024 um 10:12 Uhr
27 Kommentare
Neuester Kommentar
Hallo Kalamari,
Ja, Du musst das Batchfile in der Codierung OEM850 speichern (das ist die Codierung, die von der Konsole benutzt wird). Wenn Du mit Notepad speicherst, wird auf einem deutschen Windows in der Codierung Windows-1252 gespeichert.
Ein Editor, der in OEM850 speichern kann, ist z.B. Notepad++.
Gruß
Friemler
Zitat von @Kalamari:
Unabhängig davon, kann man dem Batch irgendwie beibringen, dass Umlaute richtig dar gestellt werden?
Unabhängig davon, kann man dem Batch irgendwie beibringen, dass Umlaute richtig dar gestellt werden?
Ja, Du musst das Batchfile in der Codierung OEM850 speichern (das ist die Codierung, die von der Konsole benutzt wird). Wenn Du mit Notepad speicherst, wird auf einem deutschen Windows in der Codierung Windows-1252 gespeichert.
Ein Editor, der in OEM850 speichern kann, ist z.B. Notepad++.
Gruß
Friemler
Hallo Kalamari,
in TextPad kann man Dokumentklassen definieren. Jeder Dokumentklasse kann der zu verwendende Zeichensatz zugeordnet werden.
Erstelle eine Dokumentklasse für Batchfiles, ordne dieser Klasse die Dateiendungen
Gruß
Friemler
in TextPad kann man Dokumentklassen definieren. Jeder Dokumentklasse kann der zu verwendende Zeichensatz zugeordnet werden.
Erstelle eine Dokumentklasse für Batchfiles, ordne dieser Klasse die Dateiendungen
bat
und cmd
zu und stelle als Zeichensatz den Terminal
-Font ein. Ich habe es jedenfalls auf diese Weise gemacht.Gruß
Friemler
Wie man Dokumentklassen in TextPad erstellt sollte Dir die Hilfe verraten.
Eine Dokumentklasse ist nur ein Profil, d.h. eine Sammlung von bestimmten Einstellungen, die wirksam werden, wenn eine Datei in TextPad geladen wird, deren Typ zu den Dateitypen gehört, die dieser Dokumentklasse zugeordnet sind.
Gruß
Friemler
Eine Dokumentklasse ist nur ein Profil, d.h. eine Sammlung von bestimmten Einstellungen, die wirksam werden, wenn eine Datei in TextPad geladen wird, deren Typ zu den Dateitypen gehört, die dieser Dokumentklasse zugeordnet sind.
Gruß
Friemler
Welche Version von TextPad nutzt Du denn? Wenn die Einstellungen der Dokumentklasse nicht gespeichert werden, hört sich das an, als ob es sich um eine alte Version von TextPad handelt, die noch nicht Vista/Win7 kompatibel ist und ihre Einstellungen direkt ins Installationsverzeichnis schreiben will, was unter den genannten Betriebssystemen nur mit erhöhten Rechten möglich ist.
Ein Upgrade auf die aktuellste TextPad Version ist kostenlos möglich.
Ein Upgrade auf die aktuellste TextPad Version ist kostenlos möglich.
Hallo,
ich bin jetzt wieder an dem Rechner, wo TextPad installiert ist. Ich hatte vergessen, dass es noch eine Einstellung gibt, die notwendig ist, um in der Codierung OEM850 zu speichern. Der Einfachheit halber hier mal Bilder der entsprechenden Dialoge.
Kennst Du schon:
Das hat noch gefehlt:
BTW: Ich habe mir außerdem den DOS-Font für CP850 von Uwe Sieber installiert, da der in Windows enthaltene Terminalfont nur in den Größen 9pt (zu klein) und als nächstes 12pt (zu groß) funktioniert. Bitte auch die Hinweise lesen!!!
Gruß
Friemler
ich bin jetzt wieder an dem Rechner, wo TextPad installiert ist. Ich hatte vergessen, dass es noch eine Einstellung gibt, die notwendig ist, um in der Codierung OEM850 zu speichern. Der Einfachheit halber hier mal Bilder der entsprechenden Dialoge.
Kennst Du schon:
Das hat noch gefehlt:
BTW: Ich habe mir außerdem den DOS-Font für CP850 von Uwe Sieber installiert, da der in Windows enthaltene Terminalfont nur in den Größen 9pt (zu klein) und als nächstes 12pt (zu groß) funktioniert. Bitte auch die Hinweise lesen!!!
Gruß
Friemler
- Erstelle doch mal mit Notepad eine Datei mit dem Inhalt
äöüßÄÖÜ
und speichere mit ANSI-Codierung. - Dann mach das selbe mit TextPad/Notepad++ und speichere mit DOS/OEM850.
- Schau Dir die erstellten Dateien in einem Hexeditor an.
Wenn ich das mache, stehen folgende Hex-Codes in den Dateien:
Zeichen ä ö ü ß Ä Ö Ü
OEM850 0x84 0x94 0x81 0xE1 0x8E 0x99 0x9A
ANSI 0xE4 0xF6 0xFC 0xDF 0xC4 0xD6 0xDC
Was steht bei Dir?
Gruß
Friemler
Hallo,
ich benutze HxD - Hexeditor (portable Version erhältlich). Der Grund für die falsche Anzeige der Zeichen bei der Datei
Zum Einbinden von Bildern: Wenn Du Deinen eigenen Beitrag bearbeitest, gibt es dort einen Tab "Bilder", über den Du Bilder hochladen kannst. Die generierten Links kannst Du in einen beliebigen Deiner Beiträge oder auch in Kommentare zu fremden Beiträgen einbinden. Wenn Du einen neuen Beitrag nur als Entwurf speicherst, kannst Du diesen Beitrag als Bildspeicher für Deine sämtlichen Forumsaktivitäten nutzen.
Aber zurück zu Deinem Problem: Es wäre nützlich ein Bild des Konsolenfensters zu posten, damit ich die falsch ausgegebenen Umlaute mal sehe. Und lass bitte den folgenden Batchcode (stammt vom Kollegen rubberman) laufen. Was wird ausgegeben?
Gruß
Friemler
ich benutze HxD - Hexeditor (portable Version erhältlich). Der Grund für die falsche Anzeige der Zeichen bei der Datei
notepad-OEM850.txt
liegt darin, dass Dein Hexeditor die falsche Codepage für die Konvertierung "Zeichencode -> grafische Darstellung des Buchstabens" verwendet. Bei HxD kann man das über eine Drop-Down List in der Toolbar des Programms von ANSI
(Defaultwert) nach DOS/IBM-ASCII
umschalten, dann sollten die Zeichen auch richtig angezeigt werden.Zum Einbinden von Bildern: Wenn Du Deinen eigenen Beitrag bearbeitest, gibt es dort einen Tab "Bilder", über den Du Bilder hochladen kannst. Die generierten Links kannst Du in einen beliebigen Deiner Beiträge oder auch in Kommentare zu fremden Beiträgen einbinden. Wenn Du einen neuen Beitrag nur als Entwurf speicherst, kannst Du diesen Beitrag als Bildspeicher für Deine sämtlichen Forumsaktivitäten nutzen.
Aber zurück zu Deinem Problem: Es wäre nützlich ein Bild des Konsolenfensters zu posten, damit ich die falsch ausgegebenen Umlaute mal sehe. Und lass bitte den folgenden Batchcode (stammt vom Kollegen rubberman) laufen. Was wird ausgegeben?
@echo off &setlocal
for /f "tokens=3" %%i in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage" /v "OEMCP"') do (
set /a oemcp=%%i
)
for /f "tokens=3" %%i in ('reg query "HKLM\SYSTEM\CurrentControlSet\Control\Nls\CodePage" /v "ACP"') do (
set /a acp=%%i
)
echo OEM-Codepage : %oemcp%
echo ANSI-Codepage: %acp%
pause
Gruß
Friemler
Hi,
führe bitte in einem Konsolenfenster die Befehle
und
aus und poste das Ergebnis.
Mich würden auch die Zeichencodes der (falsch ausgegebenen) Buchstaben
als Batchfile in OEM850 speichern und ausführen. Dann die Datei
Danach den gleichen Befehl von Hand im Konsolenfenster eingeben und ebenfalls die
Gruß
Friemler
führe bitte in einem Konsolenfenster die Befehle
chcp
echo %cmdcmdline%
Mich würden auch die Zeichencodes der (falsch ausgegebenen) Buchstaben
äöüßÄÖÜ
interessieren. Also den Befehl>"%Userprofile%\Desktop\Ausgabe.txt" echo äöüßÄÖÜ
Ausgabe.txt
vom Desktop mit HxD öffnen und die Zeichencodes ablesen.Danach den gleichen Befehl von Hand im Konsolenfenster eingeben und ebenfalls die
Ausgabe.txt
mit HxD öffnen und Zeichencodes ablesen.Gruß
Friemler
Sooo, die bei Dir angezeigten Hieroglyphen sind kyrillische Buchstaben. Die Zeichencodes für äöüßÄÖÜ aus der Codepage 850 (Konsole auf einem deutschen Windows) entsprechen diesen Zeichen, wenn zur Konvertierung "Zeichencode -> grafische Darstellung des Buchstabens" die Codepage 855 für das kyrillische Alphabet verwendet wird.
Russische Zeichensätze - klingelt da bei Dir was? Hast Du irgendetwas installiert, das damit in Zusammenhang steht?
Trotzdem ist da etwas gewaltig faul. Der Befehl
Evtl. wurde Deine Version des Terminal-Fonts gegen eine russische Variante ausgetauscht.
[EDIT]
Die Font-Dateien von Windows liegen unter
Die Dateien im Font-Verzeichnis siehst Du nur von der Konsole aus. Der Windows-Explorer stellt in diesem Verzeichnis nur Symbole für die Font-Namen dar. Für die Konsolen-Fonts findet sich deshalb nur ein Eintrag
[/EDIT]
Russische Zeichensätze - klingelt da bei Dir was? Hast Du irgendetwas installiert, das damit in Zusammenhang steht?
Trotzdem ist da etwas gewaltig faul. Der Befehl
chcp
hat als Ergebnis ja Aktive Codepage: 850.
zurückgeliefert. Nach den angezeigten Zeichen hätte es aber Aktive Codepage: 855.
sein müssen.Evtl. wurde Deine Version des Terminal-Fonts gegen eine russische Variante ausgetauscht.
[EDIT]
Die Font-Dateien von Windows liegen unter
%WinDir%\Fonts
. Der Terminal-Font heißt vgaxxx.fon
, wobei das xxx
für die Codepage steht. Evtl. ist die vga855.fon
in vga850.fon
umbenannt worden. Die originale vga850.fon
könntest Du Dir von Deinem zweiten Laptop holen.Die Dateien im Font-Verzeichnis siehst Du nur von der Konsole aus. Der Windows-Explorer stellt in diesem Verzeichnis nur Symbole für die Font-Namen dar. Für die Konsolen-Fonts findet sich deshalb nur ein Eintrag
Terminal
, obwohl es eine ganze Menge vgaxxx.fon
-Dateien gibt.[/EDIT]
Ja, Du musst über die Konsole in das Verzeichnis navigieren und die Dateien per Konsolenbefehl kopieren.
Wenn eine gewisse Logik in dem Benennungsschema für die Fonts liegt, sollte es die
Bevor Du auf dem Zielrechner etwas überschreibst mache eine Sicherungskopie der entsprechenden Dateien.
Keine Haftung für irgendwelche Schäden am System.
[EDIT]
Es wäre auch möglich, dass Du eine Kopie der vorhandenen
[/Edit]
Wenn eine gewisse Logik in dem Benennungsschema für die Fonts liegt, sollte es die
vga850.fon
sein.Bevor Du auf dem Zielrechner etwas überschreibst mache eine Sicherungskopie der entsprechenden Dateien.
Keine Haftung für irgendwelche Schäden am System.
[EDIT]
Es wäre auch möglich, dass Du eine Kopie der vorhandenen
vga850.fon
machen musst und die Kopie unter dem Namen vgaoem.fon
oder vgaoem_0.fon
ins Fonts-Verzeichnis zurückkopieren musst.[/Edit]
Hi,
versuche mal folgendes:
Dort sollte unter "Schriftart" der Eintrag "Rasterschrift" markiert sein. Probiere dann unter "Größe" die verschiedenen Größen durch. Durch Auswahl einer anderen Schriftgröße wird teilweise auch eine andere Font-Datei aktiviert. Jeweils mit "OK" bestätigen und im Konsolenfenster Umlaute eingeben.
Du könntest auch den schon erwähnten Font von Uwe Sieber installieren. Ich habe dadurch unter "Größe" 2 Zeilen mit dem Eintrag "8x12".
Falls Du eine passende Einstellung gefunden hast, wähle im Systemmenü statt "Eigenschaften" den Eintrag "Standardwerte" und nimm dann die Einstellung nochmal vor, damit sie in Zukunft bei neuen Konsolenfenstern auch wirksam wird.
Wenn das alles auch nicht funktioniert, aktiviere unter "Schriftart" den Eintrag "Lucida Konsole" und schau dann mal nach, ob alles korrekt angezeigt wird.
Gruß
Friemler
versuche mal folgendes:
- Gehe ins Systemmenü des Konsolenfensters (Klick auf das kleine Icon in der linken oberen Ecke des Fensters)
- Eigenschaften auswählen
- Registerkarte "Schriftart"
Dort sollte unter "Schriftart" der Eintrag "Rasterschrift" markiert sein. Probiere dann unter "Größe" die verschiedenen Größen durch. Durch Auswahl einer anderen Schriftgröße wird teilweise auch eine andere Font-Datei aktiviert. Jeweils mit "OK" bestätigen und im Konsolenfenster Umlaute eingeben.
Du könntest auch den schon erwähnten Font von Uwe Sieber installieren. Ich habe dadurch unter "Größe" 2 Zeilen mit dem Eintrag "8x12".
Falls Du eine passende Einstellung gefunden hast, wähle im Systemmenü statt "Eigenschaften" den Eintrag "Standardwerte" und nimm dann die Einstellung nochmal vor, damit sie in Zukunft bei neuen Konsolenfenstern auch wirksam wird.
Wenn das alles auch nicht funktioniert, aktiviere unter "Schriftart" den Eintrag "Lucida Konsole" und schau dann mal nach, ob alles korrekt angezeigt wird.
Gruß
Friemler