[CMD] Переименование файлов с инкрементом числа

Rubber

Новый пользователь
Сообщения
8
Реакции
0
Информация
Перенеcено из темы.

Благодарю за интересные сведения.

Есть вопрос по вычислениям. А именно:
В каталоге имеются файлы с именами "1.jpg", "2.jpg" и так до "300.jpg", нумерация не подряд.
Требуется переименовать эти файлы последовательно увеличив имя файла на единицу.
Было "123.jpg", должно стать "124.jpg". Было "129.jpg", станет "130.jpg".

Батничек бы с циклом построить.
Помогите, пожалуйста?
 
Последнее редактирование модератором:
Если "не подряд", можно построить обратный цикл:
CMD/BATCH:
@echo off
SetLocal EnableExtensions EnableDelayedExpansion

set max=1000

for /L %%a in (%max%, -1, 1) do set /a n=%%a+1 & if exist %%a.jpg ren %%a.jpg !n!.jpg

pause

Алгоритм неоптимален по скорости, но прост. + нужно примерно знать и указать максимальное число.
 
Благодарю за ответ.
Нумерация должна быть адекватна имеющимся именам файлов.
91,95, 101 => 92,96,102

Работает корректно и моментально.
Поясните, пожалуйста, чайнику строку 2.

И второй вопрос, обязательно ли учитывать существование файла, как это сделано в строке 6?
Если просто скомандовать переименование, получим отлуп "файл не найден". Или ошибка как раз тормозит операцию?
 
Поясните, пожалуйста, чайнику строку 2.
Включение синтаксиса !n!

Или ошибка как раз тормозит операцию?
По идее с if exist будет чуть быстрее. Будет тормозить не сама ошибка, а вывод в консоль, но его можно занулить через 2>NUL
 
Назад
Сверху Снизу