@ECHO OFF
SETLOCAL
SET "alphabet=a b c d e f g h i j k l m n o p q r s t u v w x y z"
SET "targetdir=U:\destdir"
FOR /f "delims=" %%a IN (
'dir /b /a-d "%targetdir%\*" '
) DO (
SET "name1=%%a"
SET "name2=%%a"
CALL :subsren
)
GOTO :EOF
:subsren
SETLOCAL ENABLEDELAYEDEXPANSION
FOR %%s IN (%alphabet%) DO SET "name2=!name2:%%s=%%s!"
endlocal&SET "name2=%name2%"
if "%name1%" neq "%name2%" ECHO(REN "%targetdir%\%name1%" "%name2%"
GOTO :EOF
Sie müssten die Einstellung von targetdir
zu ändern, um Ihre Umstände anzupassen.
Die erforderlichen REN-Befehle sind lediglich ECHO
für Testzwecke. Nachdem Sie überprüft haben, dass die Befehle korrekt sind, ändern Sie ECHO(REN
zu REN
, um die Dateien tatsächlich umzubenennen.
Schnappen jeder Dateinamen und Zuweisen zu name1
und name2
, rufen dann Subroutine :subsren
jeden Buchstaben Ersetzen in name2
mit lowercse Äquivalent, verwenden dann das Standard Parsing Trick das modifizierte name2
außerhalb des setlocal/endlocal
Halterung zu exportieren.
umbenennen wenn name2
ist anders als name1
und alles fertig!