majcho
Goto Top

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

Content-ID: 384641

Url: https://administrator.de/contentid/384641

Ausgedruckt am: 22.11.2024 um 15:11 Uhr

NetzwerkDude
NetzwerkDude 28.08.2018 aktualisiert um 11:20:46 Uhr
Goto Top
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:
'Eingabe' -replace 'was','womit'  

also als einzeiler etwa so:
'Ün lü türk.pdf' -replace 'ü','ue' -replace 'ä','ae'  
Ergebnis:
uen lue tuerk.pdf

das würde ä's und ü's wegmachen, entsprechend deine komplette tabelle dahinterschreiben im selben format um alle umlaute abzufangen
majcho
majcho 28.08.2018 um 11:36:05 Uhr
Goto Top
Mit powershell habe ich als low level user (programmieren wenig Kenntnisse) noch nicht gearbeitet. Ich habe vor die Dateien nach weiter mit gawk und ghostscript zu verarbeiten. Deshalb passt powershell nicht. Diese Umlauteproblematik ist erst jetzt nach einem Windows Update vor ein paar Tagen aufgetaucht.
Bitboy
Bitboy 28.08.2018 um 12:02:27 Uhr
Goto Top
Kannst du mal genau beschreiben wo dein Problem mit den Dateinamen ist?
Ein chcp 1252 am Anfang der Batch sollte eigentlich reichen um in der Ausgabe die Umlaute richtig darzustellen.
Lochkartenstanzer
Lochkartenstanzer 28.08.2018 aktualisiert um 12:08:05 Uhr
Goto Top
Zitat von @majcho:

Ich habe vor die Dateien nach weiter mit gawk und ghostscript zu verarbeiten.

moin,

Wenn Du gawk und ghostscript verwendest, ist sicher eine bash-umgebung nciht weit weg.

Dann schau mal nach mmv. Damit ist das Umbenennen trivial.

Selamlar,

lks
majcho
majcho 28.08.2018 aktualisiert um 12:37:27 Uhr
Goto Top
Habe das Problem entdeckt und gelöst.

Nach dem Aufruf der batch-Datei

set chcp 1252
Die Umgebungsvariable "chcp 1252 " ist nicht definiert.

Das Problem tauchte plötzlich nach dem Update von Windows 10 auf.

jetzt muss es lauten

chcp 1252
oder
chcp 65001
ohne dem
set
Dann funktioniert die neue Umgebungsvariable.

Das Windows 10 Update scheint irgend etwas bewirkt zu haben?!
137084
137084 30.08.2018 aktualisiert um 11:12:39 Uhr
Goto Top
Zitat von @majcho:
set chcp 1252
Die Umgebungsvariable "chcp 1252 " ist nicht definiert.
Die gab es auch noch nie! Und so definiert man auch keine Variable mit *set*. chcp ist ein *Befehl* keine Variable.