Вы можете использовать цикл FOR /F и установить символ подчеркивания в именах файлов в качестве разделителя. Вы можете использовать токены 1 1,2,3,* для последующего объединения переменных для создания и синтаксического анализа исходного и конечного имени файла соответственно для последующего использования с командой XCOPY для получения желаемого результата.
Пакетный скрипт
@ECHO ON
SET Source=c:/roger/brawn
SET Destination=D:/var/lag
FOR /F "TOKENS=1,2,3,* DELIMS=_" %%F IN ('DIR /B /A-D "%source%\*.pdf"') DO ECHO F | XCOPY /Y /F "%source%\%%F_%%G_%%H_%%I" "%Destination%\%%F_%%G_%%I" && IF EXIST "%Destination%\%%F_%%G_%%I" DEL /Q /F "%source%\%%F_%%G_%%H_%%I"
EXIT
Примечание. Команда ECHO направляет F к команде XCOPY, поэтому она неявно выбирает F для "файла", поскольку она явно указывает новое имя файла назначения, разбирая 3-й токен в цикле, чтобы помочь получить нужное имя файла. За командой XCOPY следует условное выполнение (&&), подтверждающее, что оно прошло успешно, и затем оно подтверждает существование нового файла назначения перед тем, как удалить исходный файл.
Дополнительные ресурсы