@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
Вы должны были бы изменить установку sourcedir
в соответствии с вашими обстоятельствами.
Необходимые команды REN - это всего лишь ECHO
ed для целей тестирования. После того, как вы подтвердили правильность команд, измените ECHO(REN
на REN
, чтобы фактически переименовать файлы.
Не особенно легкий для новичка, так как имена файлов могут содержать ; который представляет собой сепаратор, как Космический
Во-первых, выполнить dir /b
, чтобы получить все необходимые имена файлов, которые применяются к %%a
с использованием for /f
без разделителей.
Далее, используя tokenise -
в %%b
и %%c
, а затем удалить начальные разделители %%c
использованием tokens=*
нанесения требуемого файла для %%d
.
Затем смешайте и совместите, чтобы создать необходимую команду переименования.
Я установил 'eol' в': 'или' | ', которые являются недопустимыми символами для имен файлов; это позволит именам файлов содержать/начинать с запятой ';' ... – aschipfl