@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
FOR /f "delims=" %%a IN (
'dir /b /a-d "%sourcedir%\*-*.pdf" '
) DO (
FOR /f "tokens=1*delims=-" %%b IN ("%%a") DO (
FOR /f "tokens=*" %%d IN ("%%c") DO (
ECHO(REN "%sourcedir%\%%~a" "%%~d"
)
)
)
GOTO :EOF
Sie müssten die Einstellung von sourcedir
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.
Nicht besonders einfach für einen Anfänger, da die Dateinamen enthalten können;, die einen Separator wie Raum ist
zunächst eine dir /b
führen alle erforderlichen Dateinamen zu erhalten, die zu %%a
angewendet werden ohne Trennzeichen verwenden for /f
. Verwendung tokens=*
Anwendung erforderliche Dateinamen %%d
nächst tokenise -
Verwendung in %%b
und %%c
, entfernt dann Separatoren von %%c
führt.
Dann mix-and-match, um den erforderlichen Befehl umzubenennen.
Ich würde 'eol' auf': 'oder' | 'setzen, die ungültige Zeichen für Dateinamen sind; Dies würde Dateinamen erlauben/beginnen mit Semikolon ';' ... – aschipfl