Variablentypen im Batch / Umlaute umwandeln

Guten Tag zusammen,

ich probiere schon seit 1-2 Stunden folgendes: Es sollen alle Dateien mit der Endung *.shp aus seinem Verzeichnis ausgelesen werden. Die Dateinamen sollen dann an ein Programm weiter gegeben werden. Das klappt so auch, leider verschluckt sich das Programm an Umlauten im Dateinamen. Also will ich die austauschen lassen:

REM Verzeichnis auslesen
for /f "tokens=1 delims=." %%a in ('dir /b %shpdir%\*.shp') do (

 REM zur Kontrolle ausgeben
 echo %%a
 echo.

 REM die Variable Name könnte so abgeändert werden
 set name=%name:„=ae%
 set name=%name:”=oe%
 set name=%name:=ue%
 set name=%name:á=ss%
 set name=%name:Ž=ae%
 set name=%name:™=oe%
 set name=%name:š=ue%

 REM hier dann Übergabe an Programm
) 

Jetzt kommt meine Frage: Wie unterscheiden sich die Variablen %%a und name? (Ausser die beiden % :smile: Wie kann ich in der Schleife den Dateinamen in %%a an die Variable name übergeben? Ein einfaches set name=%aa will leider nicht.

Mit der Hoffnung auf Hilfe

Philipp

…was ich noch sagen sollte, ist dass die Sache als *.bat unter cmd.exe laufen soll.