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