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

323
DINE

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

подробность

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

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

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

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

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

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

2
Что случилось со статусом этого сейчас? Pimp Juice IT 6 лет назад 0

1 ответ на вопрос

0
Pimp Juice IT

Вы можете использовать цикл FOR / F и установить символ подчеркивания в именах файлов в качестве разделителя. Вы можете использовать токены 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 следует условное выполнение (&&), подтверждающее, что оно прошло успешно, и затем оно подтверждает существование нового файла назначения перед тем, как удалить исходный файл.


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

Похожие вопросы