Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Umlaute in Batch-Datei bei Ausgabe richtig darstellen

Frage Entwicklung Batch & Shell

Mitglied: Larz

Larz (Level 2) - Jetzt verbinden

22.09.2009, aktualisiert 18.10.2012, 74928 Aufrufe, 22 Kommentare, 2 Danke

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
Mitglied: Kirschi
22.09.2009 um 08:46 Uhr
Moin,

Du solltest einen anderen Editor benutzen, der alte MS-DOS z.B. tut das richtig (edit.com) oder versuche mal notepad+

Gruß
Andreas
Bitte warten ..
Mitglied: Larz
22.09.2009 um 09:09 Uhr
Servus Kirschi,

zum erstellen der Dateien nehme ich notepad++

Aber wenn der Benutzer die Batch ausführt, nimmt er den Standard-Befehlsinterpreter (oder wie man das nennen mag), das kann ich ja nicht beeinflussen.

Nicht im Editor wird falsch angezeigt, sondern bei der Ausführung

Gruß
Larz
Bitte warten ..
Mitglied: Kirschi
22.09.2009, aktualisiert 18.10.2012
Hallo Larz,

ja ich meinte notepad++ , aber scheinbar kann der auch nicht im erforderlichen ASCII speichern, werde nochmal probieren.

schau mal hier: http://www.administrator.de/forum/umlaute-in-textdatei-mit-eingabeauffo ...">href="http://www.administrator.de/forum/umlaute-in-textdatei-mit-eingabeaufforderung-korrekt-wiedergeben%3f-83520.html" title="http://www.administrator.de/forum/umlaute-in-textdatei-mit-eingabeaufforderung-korrekt-wiedergeben%3f-83520.html" onclick="window.open(this.href); return false;">http://www.administrator.de/forum/umlaute-in-textdatei-mit-eingabeauffo ...

Gruß
Andreas
Bitte warten ..
Mitglied: rubberman
22.09.2009 um 09:35 Uhr
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
Bitte warten ..
Mitglied: Larz
22.09.2009 um 11:23 Uhr
Hallo rubberman,

ich habe eine Batchdatei die da lautet:

01.
CHCP 1252 
02.
@ECHO Müller 
03.
pause
und raus kommt
"M³ller"
siehe http://yfrog.com/0ubildcxj
Bitte warten ..
Mitglied: 81825
22.09.2009 um 11:37 Uhr
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.
Bitte warten ..
Mitglied: Larz
22.09.2009 um 11:43 Uhr
Hallo greypeter,

Ja, das ist richtig. Ich möchte ja aber die Ausgabe am Bildschirm/in der Console beeinflussen...
Ok, ich musste eben mir mal wieder bewusst machen, das Speichern als batch nicht gleich Speichern als batch ist.
Kann mir denn dann jemand sagen wir ich Notepad++ es einstellen muss dass mit dem richtigen Zeichencode gearbeitet wird? Ich habe

- UTF-8 ohne BOM
- UTF-8
- UCS2 Big Endian und
- UCS2 Little Endian

bereits probiert. Es wird eher noch unlesbarer dadurch...

Gruß
Larz
Bitte warten ..
Mitglied: Larz
22.09.2009 um 11:56 Uhr
Nicht schön, aber ein Notbehelf - habe die Datei in Notepad++ geschrieben, gespeichert. Danach in edit.com geöffnet, Umlaute korrigiert und nochmal abgespeichert... naja

Eleganter wäre wohl wirklich wenn Notepad++ dazu zu bewegen wäre, Textdateien als ASCII zu speichern...
[Edit] Weiß jemand von euch wie die richtige Einstellung wäre? [/Edit]

Gruß
Larz
Bitte warten ..
Mitglied: rubberman
22.09.2009 um 18:40 Uhr
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:
01.
@echo off &setlocal 
02.
chcp 1252>nul 
03.
set "text=Müller" 
04.
chcp 850>nul 
05.
echo %text% 
06.
pause
Bitte warten ..
Mitglied: Kirschi
22.09.2009 um 18:46 Uhr
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
Bitte warten ..
Mitglied: Larz
23.09.2009 um 09:14 Uhr
Moin rubberman,

ok, von hinten durch die Brust ins Knie
Dann müssen die "Textblöcke" eben vorher definiert werden. FInde ich persönlich aber fast noch schöner wie mit edit.com abzuspeichern...

Danke

Gruß
Larz
Bitte warten ..
Mitglied: Larz
23.09.2009 um 09:49 Uhr
Hab's jetzt so gelöst:

Am Anfang jeder Batch definiere ich einfach die Sonderzeichen, die ich will und nutze dann die VariableN:

01.
chcp 1252>nul 
02.
set ue=ü 
03.
set ae=ä 
04.
set oe=ö 
05.
set Uue=Ü 
06.
set Aae=Ä 
07.
set Ooe=Ö 
08.
set ss=ß 
09.
chcp 850>nul 
10.
@echo Sch%oe%n, dass Herr M%ue%ller das %Uue%bungsbeispiel ist
Gruß
Larz
Bitte warten ..
Mitglied: bastla
25.09.2009 um 08:16 Uhr
Hallo an Alle!
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
Bitte warten ..
Mitglied: DRwindows97
05.11.2011 um 23:11 Uhr
Notepad++ kann wohl ein Dokument im ASCII Format bearbeiten.
Dazu könnt ihr einfach die Bearbeitungssprache unter Sprachen -> M -> MS DOS Stil einstellen.
Bitte warten ..
Mitglied: yakazaa
21.03.2012 um 08:53 Uhr
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
Bitte warten ..
Mitglied: retradnews
24.03.2015 um 12:30 Uhr
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.
Bitte warten ..
Mitglied: BerndP
29.07.2015 um 08:46 Uhr
servus, da werden sie geholfen http://www.libe.net/index.php/Robocopy-Umlaute
Bitte warten ..
Mitglied: EnnEnn
13.02.2016, aktualisiert um 16:15 Uhr
danke, BerndP - DAS wars!, bin wirklich geholfen worden
Bitte warten ..
Mitglied: frankenfrank
08.03.2016 um 08:29 Uhr
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

01.
:: = = = = = START = = = = = 
02.
@ECHO OFF 
03.
CLS 
04.
ECHO. 
05.
ECHO Umlaute in cmd 
06.
ECHO. 
07.
ECHO 'ue' ist ein unsichtbares Zeichen (kopieren geht auch wenn mans nicht sieht) 
08.
ECHO. 
09.
ECHO Hier alle Umlaute hintereinander „ ”  Ž ™ š 
10.
ECHO. 
11.
ECHO. 
12.
ECHO ae = „ 
13.
ECHO oe = ” 
14.
ECHO ue =  
15.
ECHO. 
16.
ECHO AE = Ž 
17.
ECHO OE = ™ 
18.
ECHO UE = š 
19.
ECHO. 
20.
ECHO. 
21.
PAUSE 
22.
EXIT 
23.
:: = = = = = ENDE = = = = =
Bitte warten ..
Mitglied: TomPiXX
21.09.2016 um 08:10 Uhr
Was macht ihr euch das so kompliziert?

Datei einmal kurz in den Sprachen auf MS-DOS-Stil einstellen und danach direkt wieder auf Batch. Fertig.
Bitte warten ..
Mitglied: juer63
03.01.2017, aktualisiert um 09:18 Uhr
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
Bitte warten ..
Mitglied: Hemingway
24.02.2017, aktualisiert um 02:21 Uhr
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.)
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Mit Batch Datei nach Ordner benennen indem sie sich befindet? (4)

Frage von PinkFLuffyUnicorn zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Datei: PDF Dateien verschieben, umbenennen und löschen (4)

Frage von F0rcehunter zum Thema Batch & Shell ...

Entwicklung
gelöst Verzeichnise sichern mit batch datei (Win10) (13)

Frage von Limbach zum Thema Entwicklung ...

Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(40)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

SAN, NAS, DAS
+100tb Storagelösung (13)

Frage von Data-Fabi zum Thema SAN, NAS, DAS ...

LAN, WAN, Wireless
Cisco W-Lan Controller als Applicance oder Software (11)

Frage von Herbrich19 zum Thema LAN, WAN, Wireless ...

DNS
gelöst Komplette TLD Überschreiben bzw eigene Definieren (10)

Frage von Herbrich19 zum Thema DNS ...