Wenn eine klassische Batch Datei kompatibel mit mehreren Windows Sytemen sein soll, also portabel, nutzt es nichts, die Buchstaben im Editor mit der falschen CP zu verwenden. Man kann zwar vermeintlich die CP der CMD umschalten, aber das verursacht unter Umständen Probleme, je nach dem was man in der Konsole anstellt, z.B. wenn man die Ausgabe von anderen Programmen mittels der ">" und "|" Befehle auslesen lässt, geht die set Methode mit den Variablen u.U. in die Hose (Zu Problemen mit set tippe
set /? in das Konsolenfenster, es gibt da ein paar Pferdefüße, wenn man damit zu wild in der Gegend herum fuhrwerkt, denn damit werden Umgebungsvariablen gesetzt). Macht es einfach gleich richtig und verwendet einen Editor, der es kann. Windows Notepad kann es nicht, das verwendet CP1252, da es Unicode unterstützt, die Kommandokonsole jedoch per default bei einem deutschen System auf CP850 eingestellt.
Unter WinXP (bei W7x32 soll es auch noch gehen, hab ich aber mangels installiertem 32 Bit W7 nie ausprobieren können) kann man noch in der Kommandokonsole
edit
eingeben und schon haben sich alle Probleme erledigt. Unter W7x64 klappt das leider nicht mehr, denn MS hat den Kommandokonsolen Editor da nicht eingebaut (wahrscheinlich sollte man sich da eh angewöhnen, direkt die Powershell zu benutzen, macht weniger Ärger und man kann damit mehr Unsinn anrichten
). Für W7x64 empfiehlt sich ein Editor wie Notepad++. Leeres Dokument öffnen, Codepage auf OEM850 einstellen, völlig normal die Batch inklusive aller Umlaute eintippen, speichern, glücklich sein. Keine potentiell fehlerbehafteten Umsetzungen oder Tabellen nötig. NP++ man auch prima unter XP verwenden, hat auch den Vorteil, dass er Syntaxhighlighting kann.
Für Umfangreicheres Scripting empfiehlt es sich sowieso, erst garnicht die normale CMD zu nehmen, denn sie hat einfach viel zu viele Limitierungen.
Ansonsten, so lange es sich ausschließlich um Text
ausgabe oder normale direkte Befehle dreht, mache es wie es Palladin007 vorgeschlagen hat und kopiere den Teil:
Code:
@echo off
chcp 1252>nul
set ue=ü
set ae=ä
set oe=ö
set Uue=Ü
set Aae=Ä
set Ooe=Ö
set ss=ß
chcp 850>nul
an den Anfang Deines Batch Scripts und jedes Mal, wenn Du einen Umlaut brauchst, ersetze den einfach durch die Variable. In Deinem Beispiel:
Das kannst Du beliebig erweitern, z.B. wenn Du z.B. das Deutsche Paragraphen Zeichen haben willst, fügst du zwischen den CHCP Zeilen folgendes ein:
und dann kannst Du im Code wieder die Variable verwenden:
Code:
echo %para%aragraph mit Paragraphen Zeichen anstelle des P
Du kannst Die Variablen natürlich auch alle anders benennen, aber aufpassen, Variablen Namen sind nicht case sensitive, d.h. eine Unterscheidung zwischen Groß- und Kleinbuchstaben findet nicht statt, also ein A wird wie ein a behandelt, das ist auch der Grund, warum Paladin007 die Variable für das Ü Uue und nicht einfach Ue genannt hat.