Umlaute und Sonderzeichen in Batchdateien
Hallo,
man hört und liest immer wieder, dass irgendwer Probleme mit Sonderzeichen in bat-dateien hat.
Das liegt daran, das ihr den normalen Editor verwendet.
Der verwendet ein anderes Code-System als cmd.
Windows hat aber auch einen "Batch-Editor" mit gleichem Code-System.
Die Maske ist zwar uralt, aber wer sich mit cmd auskennt hat damit keine Probleme.
mfg
bennib22
PS:Ich würde "edit" nur zum Schreiben von Sonderzeichen/Umlauten verwenden!
Für alles andere das ganz normale notepad.
man hört und liest immer wieder, dass irgendwer Probleme mit Sonderzeichen in bat-dateien hat.
Das liegt daran, das ihr den normalen Editor verwendet.
Start>Ausführen>notepad
Der verwendet ein anderes Code-System als cmd.
Windows hat aber auch einen "Batch-Editor" mit gleichem Code-System.
Start>Ausführen>edit
Die Maske ist zwar uralt, aber wer sich mit cmd auskennt hat damit keine Probleme.
mfg
bennib22
PS:Ich würde "edit" nur zum Schreiben von Sonderzeichen/Umlauten verwenden!
Für alles andere das ganz normale notepad.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 127778
Url: https://administrator.de/contentid/127778
Ausgedruckt am: 22.11.2024 um 13:11 Uhr
3 Kommentare
Neuester Kommentar
Hallo Benni,
ich habe das mittlerweile für mich so gelöst, indem ich am Anfang eines jeden Scripts die Codepage kurz umstelle, Variablen für die Umlaute deklariere und danach die Codepage wieder zurücksetze:
Danach kann ich mit %ue%, %Uue% usw. s%ae%mtliche Umlaute mehr oder weniger "direkt" in Notepad schreiben... edit.com war mir einfach zu umständlich
Gruß
Larz
ich habe das mittlerweile für mich so gelöst, indem ich am Anfang eines jeden Scripts die Codepage kurz umstelle, Variablen für die Umlaute deklariere und danach die Codepage wieder zurücksetze:
chcp 1252>nul
set ue=ü
set ae=ä
set oe=ö
set Uue=Ü
set Aae=Ä
set Ooe=Ö
set ss=ß
chcp 850>nul
Danach kann ich mit %ue%, %Uue% usw. s%ae%mtliche Umlaute mehr oder weniger "direkt" in Notepad schreiben... edit.com war mir einfach zu umständlich
Gruß
Larz
Hallo Zusammen,
genauso, aber mit der Verwendung der Umlaute als Variablennamen:
Die Zeilen 3-6 machen die Arbeit. Dabei habe ich keinen Wert auf Lesbarkeit gelegt, sondern nur auf Kürze und Prägnanz.
Zum besseren Verständnis was diese 4 Zeilen tun:
Grüße
rubberman
genauso, aber mit der Verwendung der Umlaute als Variablennamen:
@echo off &setlocal
setlocal&for /f "tokens=2 delims=:" %%a in ('chcp') do (set /a oemcp=%%~na&chcp 1252>nul)
for /f "tokens=1-7" %%a in ('echo Ä Ö Ü ä ö ü ß^&chcp %oemcp%^>nul') do (
set au=%%a&set ou=%%b&set uu=%%c&set al=%%d&set ol=%%e&set ul=%%f&set sz=%%g)
(endlocal&set Ä=%au%&set Ö=%ou%&set Ü=%uu%&set ä=%al%&set ö=%ol%&set ü=%ul%&set ß=%sz%)
echo Beispiel:
echo %Ä%nderungen der Ma%ß%einheiten f%ü%hren m%ö%glicherweise zu
echo verf%ä%lschten Ergebnissen in der %Ü%bertragsgleichnung.
echo(
pause
Zum besseren Verständnis was diese 4 Zeilen tun:
REM Eigene Subumgebung.
setlocal
REM Derzeitige ASCII Codepage in Variable packen.
for /f "tokens=2 delims=:" %%a in ('chcp') do set /a oemcp=%%~na
REM Auf ANSI wechseln.
chcp 1252>nul
REM Temporäre Variablen definieren.
for /f "tokens=1-7" %%a in ('echo Ä Ö Ü ä ö ü ß') do (
set "au=%%a"
set "ou=%%b"
set "uu=%%c"
set "al=%%d"
set "ol=%%e"
set "ul=%%f"
set "sz=%%g"
)
REM Zurück auf ASCII.
chcp %oemcp%>nul
REM Neue Variablen mit den Umlauten als Variablennamen definieren und dabei die Werte aus den temporären Variablen in die Parent Umgebung rüber retten.
(
endlocal
set "Ä=%au%"
set "Ö=%ou%"
set "Ü=%uu%"
set "ä=%al%"
set "ö=%ol%"
set "ü=%ul%"
set "ß=%sz%"
)
Grüße
rubberman