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, 66558 Aufrufe, 20 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...