У меня есть скрипт, который добавляет нули в имя файла, если имя файла меньше 18 цифр.переименование файла с помощью пакетного скрипта
Например, если имя файла 1234567
, то он должен переименовать его в 0000000000
и если это 123456789
, то это делает его 00000000
. Мой код уже делает эту функциональность
Теперь мое требование заключается в том, что если имя файла 1234567-1
, то он должен сделать это 0000000000_Type_1
и если имя 1234567-a
, то он должен переименовать его в 0000000000_Type_a
.
Это означает, что он должен продолжать делать то, что делает мой скрипт, но в дополнение к этому он должен быть суффикс _Type_<last character>
в имени файла. Имя файла может быть 1234567
или 123456789
или 1234567-1
или 12345678-b
или любая вещь, но всегда есть цифры, а не символы перед дефисом (-). В папке может быть несколько файлов. Hyphens (-) следует заменить символом подчеркивания (_), за которым следует Type_
, а также как последний символ в имени файла.
Вот мой существующий код:
@echo off
setlocal enableextensions enabledelayedexpansion
rem iterate over tif files:
for %%f in (C:\Task\Drop_Files\*.tif) do (
rem store file name without extension
set FileName=%%~nf
rem Add leading zeroes:
set FileName=00000000000000000!FileName!
set FileName=!FileName:~-18!
set FileName=!FileName!%%~xf
rem Rename the file
rename "%%f" "!FileName!"
)
Если исходное имя файла 0000000000012783_1, то ваш код создает имя файла как 0000000000012783_1_Type_0000000012783_1. Он должен быть 0000000000012783_Type_1. Не могли бы вы посоветовать, что делать? – shuru
Извините, я не смог применить замедленное расширение для 'Суффикса' один раз - см. Мой [edit] (http://stackoverflow.com/revisions/39150386/2) ... – aschipfl
... Это сработало ....спасибо – shuru