Windows: Batch-Skripte und Umlaute

Idealerweise ist es (imho) immer eine gute Idee Umlaute in Skripten und Pfaden zu vermeiden, manchmal kommt man dennoch schlichtweg nicht drum herum.

So in diesem Fall, das der Benutzername bzw. in Folge der Profilpfad einen Umlaut enthält. Die Situation ist geerbt, soll heißen: Stammt von vorangegangenen IT-Betreuer.

Damit nun dennoch in klassischen Batch-Skripten Umlaute verwendet werden können, kann man zu einem Trick greifen:

  • Zunächst die Codepage ändern,
  • in einer Variable den gewünschten Umlaut eintragen,
  • die Codepage zurücksetzen und
  • den eigentlichen Befehl einsetzen.

Ein Beispiel

Am Beispiel von einem kleinen Skript bei dem Dokumente mittels Robocopy migriert werden sollen sieht das wie folgt aus:

@echo off

title Migration

chcp 1252

set source=\\pc06\c$\Users\UserÖ
set destination=C:\Users\UserÖ
set folder=Documents

chcp 850

robocopy "%source%\%folder%" "%destination%\%folder%" /mir /copy:dat /xj /np /r:0 /w:0 /tee /log:"rc01-%folder%.log"

pause

Wichtig: Das Ganze funktioniert nur, wenn die Datei in „ANSI“-Codierung gespeichert ist! In Notepad geht dies mit „Datei – Speichern unter – Codierung“.

Quellen:

heise – ct – Praxis & Tipps – Tipps & Tricks – Keine Umlaute auf Kommandozeile

LiBe.net – Problem gelöst: cmd, BATch Umlaute – Windows robocopy

Ein Kommentar

  • Ich habe es mir früher einfach gemacht und einfach die Umlaute in der AD abgeändert 🙂 wenn es nötig war.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.