DOS batch Dateinamen mit Umlauten umbennen
Bei DOS-Batch scripten habe ich immer wieder Probleme mit Umlauten in Dateinamen. Ich würde gerne die Dateinamen temporär umbennenen. Habe es schon mit diesem Trick probiert, was leider auch nicht immer zum Erfolg führt. Gibt es eine einfache Schleifenlösung um Dateinamen mit Umlauten umzuwandeln?
chcp 1252>nul
SET ue=ü
SET ae=ä
SET oe=ö
SET Uue=Ü
SET Aae=Ä
SET Ooe=Ö
SET ss=ß
chcp 850>nul
set pdfname=Ün lü türk.pdf
set pdfname1=%pdfname: =% :: Leerzeichen entfernen
echo %pdfname1%
Ergebnis: Ünlütürk.pdf
chcp 1252>nul
SET ue=ü
SET ae=ä
SET oe=ö
SET Uue=Ü
SET Aae=Ä
SET Ooe=Ö
SET ss=ß
chcp 850>nul
set pdfname=Ün lü türk.pdf
set pdfname1=%pdfname: =% :: Leerzeichen entfernen
echo %pdfname1%
Ergebnis: Ünlütürk.pdf
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 384641
Url: https://administrator.de/contentid/384641
Ausgedruckt am: 08.11.2024 um 07:11 Uhr
6 Kommentare
Neuester Kommentar
Ist das wirklich eine DOS umgebung? Weil im moderneren Windows könntest du mit dem Powershell Operator "replace" arbeiten:
https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell. ...
z.B. so:
also als einzeiler etwa so:
Ergebnis:
das würde ä's und ü's wegmachen, entsprechend deine komplette tabelle dahinterschreiben im selben format um alle umlaute abzufangen
https://docs.microsoft.com/de-de/powershell/module/microsoft.powershell. ...
z.B. so:
'Eingabe' -replace 'was','womit'
also als einzeiler etwa so:
'Ün lü türk.pdf' -replace 'ü','ue' -replace 'ä','ae'
uen lue tuerk.pdf
das würde ä's und ü's wegmachen, entsprechend deine komplette tabelle dahinterschreiben im selben format um alle umlaute abzufangen
Die gab es auch noch nie! Und so definiert man auch keine Variable mit *set*. chcp ist ein *Befehl* keine Variable.