Добавление автоматического префикса номера ко всем файлам в каталоге - PullRequest
0 голосов
/ 07 июня 2018

Привет, как я могу добавить префикс для всех файлов (также в подпапках) в каталоге, используя скрипт .bat?

Пример:

Вход

fileNameABC, fileNameDEF, fileNameHIJ...

Выход

001-fileNameABC, 002-fileNameDEF, 003-fileNameHIJ.....

Большое спасибо.

1 Ответ

0 голосов
/ 07 июня 2018

Обратите внимание, что у этого скрипта есть несколько ограничений, например, он предназначен только для нумерации от 001 до 999 (вам нужно внести изменения в нескольких местах, чтобы расширить диапазон), и ограничение в том, как он определяет, имеет ли префикс ужебыли добавленыНо это должно начать вас ...

@ECHO OFF
IF %1.==. ECHO Source path not provided & PAUSE & EXIT/B
IF NOT EXIST %1 ECHO Source directory does not exist & PAUSE  & EXIT/B
SETLOCAL
REM This script only supports numerical prefixes in the range 001 to 999
SET P=1000
FOR /R %1 %%I IN (.) DO CALL:0 "%%I"
PAUSE
EXIT/B
:0
REM Uncomment below to restart numbering from 1 for each subfolder
::SET P=1000
FOR %%I IN (%1\*) DO CALL:1 "%%I" || EXIT/B
EXIT/B
:1
IF %P%==1999 ECHO Overflow: Too many files found (More than 999) & EXIT/B 1
REM Additional test to see if prefix may have been added already. This test is not very accurate
SET T=%~N1
CALL:2 %T:~0,1% || CALL:2 %T:~1,1% || CALL:2 %T:~2,1% || IF %T:~3,1%==- EXIT/B 0
REM END: Additional test
SET/A P=P+1
REN %1 "%P:~1%-%~NX1"
EXIT/B 0
:2
REM Make ERRORLEVEL 0, else 1 if %1 is digit
CD.
FOR /L %%I IN (0,1,9) DO IF %1==%%I EXIT/B 1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...