Удалить среднюю цифру из нескольких файлов и скопировать

Удалить среднюю цифру из нескольких файлов и скопировать

У меня есть несколько PDF-файлов определенного формата в определенной папке, и для этих конкретных файлов мне нужно обрезать среднюю цифру с помощью bat-файла и переместить в папку назначения с новым именем.

Деталь

  • Исходная папка: C:/roger/brawn

  • Место назначения: D:/var/lag

  • Формат файла: eAWI_12345678_89101112_01Mar2018.pdf

Желаемый результат

Мне нужно обрезать89101112из исходного имени файла и получить результатeAWI_12345678_01Mar2018.pdf

Этот формат номера имени файла генерируется динамически с использованием переменных в приложении.

решение1

Вы можете использоватьДЛЯ /Фloop и установите символ подчеркивания в именах файлов в качестве разделителя. Вы можете использовать токены 1,2,3,*для последующего объединения переменных для построения и анализа исходного и конечного имени файла для последующего использования сXКОПИРОВАТЬкоманду, чтобы получить желаемый результат.

Пакетный скрипт

@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

Примечание:TheЭХОкоманда передает данные FвXКОПИРОВАТЬкоманда, поэтому она неявно выбирает F«файл», поскольку она явно указывает новое имя файла назначения, анализируя 3-й токен в цикле, чтобы помочь получить желаемое имя файла.XКОПИРОВАТЬза командой следуетусловное исполнение (&&)подтверждая успешность, а затем он подтверждает существование нового целевого файла, прежде чем удалить исходный файл.


Дополнительные ресурсы

Связанный контент