Как переименовать файлы в папке по порядку?
Переименование файлов удобно делать не одной, а несколькими командами, которые надо записать в файл с расширением .bat и пользоваться много раз просто перетаскивая нужную папку на ярлык или название файла.
для нумерации всех файлов (*.*) с заменой имени файла на номер (пример 1.txt) подойдут такие команды:
%~d1
cd %1
set k_number=0
for %%i in (*.*) do call :b %%i
exit
:b
set /A k_number+=1
ren %1 %k_number%%~x1
для добавления номера c символом "_" впереди имени (пример 1_file.txt) файла меняется только последняя команда
%~d1
cd %1
set k_number=0
for %%i in (*.*) do call :b %%i
exit
:b
set /A k_number+=1
ren %1 %k_number%_%~nx1
для добавления символа "_" и номера после имени файла (пример file_1.txt) меняется только последняя команда
%~d1
cd %1
set k_number=0
for %%i in (*.*) do call :b %%i
exit
:b
set /A k_number+=1
ren %1 %~n1_%k_number%%~x1
А вот так
Setlocal EnableExtensions EnableDelayedExpansion
set cnt=0
for /f "delims=" %%a in ('dir имяпапки /b /s /a-d') do (
set /a cnt+=1
move %%a имяпапки\%%~na_!cnt!%%~xa
)
переменная cnt это номер файла, его можно вставить вместо имени файла
move %%a имяпапки!cnt!
или перед
move %%a имяпапки!cnt!%%~na%%~xa
(уродский редактор БВ удаляет слеши "\" в имени файла).
Чтобы записать вместо имени файла номер.ext (1.ext,2.ext) можно набрать команду:
В режиме командной строки:
for %i in (*.*) do for /L %k in (1,1,120) do ren %i %k.ext
в bat файле команда выглядит так:
for %%i in (*.*) do for /L %%k in (1,1,120) do ren %%i %%k.ext
Если требуется переименовать файлы в номера c сохранением типа то можно воспользоваться командой в режиме командной строки:
for %i in (*.*) do for /L %k in (1,1,120) do ren %i %k%~xi
в bat файле команда выглядит так:
for %%i in (*.*) do for /L %%k in (1,1,120) do ren %%i %%k%%~xi
120 - число не меньшее количества переименовываемых файлов.
1,1 начало нумерации и шаг нумерации