Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 09.09.2015
Сообщений: 23
1

Пакетно переименовать 100 jpg-файлов в имена, являющиеся их порядковыми номерами

06.04.2016, 16:44. Просмотров 1249. Ответов 8
Метки нет (Все метки)

подскажите как переименовать пакетно, 100 jpg файлов, надо что б было 1 2 3 4 и т.д. пробывал в тотал командере, но там переименовывает 1, 10, и т.д. не по порядку, зарание спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.04.2016, 16:44
Ответы с готовыми решениями:

Как переименовать файлы в имена, являющиеся их порядковыми номерами?
Есть папка, а в ней порядка 150 файлов. Как с помощью батника поменять имена на 1,2,3...150?

Переименовать файлы в имена, являющиеся их порядковыми номерами
Есть 182 файла в формате png и необходимо переименовать их в порядковый номер. Как это сделать?

Как пакетно отделить имена файлов от пути?
Есть список полных путей файлов в текстовом файле (допустим его зовут List.txt) Типа:...

Нужен метод, позволяющий создать множество файлов с порядковыми номерами
Мне нужно просто создать 100 пустых файлов с порядковыми номерами. Без лишних заморочек я делал...

8
3126 / 1771 / 587
Регистрация: 26.04.2015
Сообщений: 5,854
06.04.2016, 21:41 2
Классически так:
Windows Batch file
1
2
3
4
@echo off
set n=0
for %%a in ("papka\*.jpg") do set /a n+=1& cmd/v/c "ren "%%a" "!n!%%~xa""
exit
.
1
3428 / 1969 / 632
Регистрация: 26.02.2014
Сообщений: 1,457
07.04.2016, 01:20 3
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

Цитата Сообщение от alpap Посмотреть сообщение
Классически так...



Классические ошибки классического кода.


1. Существует огромная вероятность переименования некоторых файлов по второму кругу.

Например, в моём тесте при переименовании всего лишь трёх файлов с именами $.jpg, $$.jpg и $$$.jpg были получены файлы с именами 2.jpg, 3.jpg и 4.jpg вместо 1.jpg, 2.jpg и 3.jpg.

Поэтому нужно использовать DIR и только DIR!


2. Заключения в кавычки строки команд, выполняемых в новом экземпляре интерпретатора, следует избегать, если в этой строке уже имеются кавычки.

Это хорошо, что файлы нужно переименовать в простые числовые имена. Если бы шаблон нового имени содержал специальные символы, например,
for %%a in ("*.jpg") do set/a n+=1& cmd/v/c "ren "%%a" "!n!&%%~xa""
,
то такой код бы не срабатывал.

Кстати, если в шаблоне нового имени будет присутствовать символ ^, его в любом случае надо удваивать, как это делается с символом %.


И ещё о нём же...

3. Если в именах переименуемых файлов присутствуют символы ^, то такие файлы не будут обработаны, так как эти символы будут пропущены интерпретатором.

Чтобы это не происходило, придётся присваивать значение переменной цикла обычной переменной и оперировать уже ей.


И то, что мы все часто забываем...

4. Если имена файлов будут начинаться на точку с запятой, то они будут пропущены при обработке.

Чтобы этого не происходило нужно использовать eol=.

То, что в его "объятия" попадёт следующая за ним кавычка, в данном случае не страшно, так как имена файлов на кавычку не начинаются.


Итого, имеем более надёжный код
Windows Batch file
1
@for /f "delims= eol=" %%a in ('2^>nul dir/a-d/b "*.jpg"') do @set/a n+=1& set x=%%a& cmd/v/c ren "!x!" "!n!.jpg"
,
пакетный файл с которым нужно просто положить в папку с переименуемыми JPG-файлами и запустить.




Другой вариант кода.


Код с использованием FINDSTR /N:
Windows Batch file
1
@for /f "tokens=1* delims=:" %%i in ('2^>nul dir/a-d/b "*.jpg"^| findstr/n .') do @ren "%%j" "%%i.jpg"
.
4
0 / 0 / 0
Регистрация: 09.09.2015
Сообщений: 23
07.04.2016, 10:52  [ТС] 4
подскажите плиз, всё переименовал по такому принцепу
Windows Batch file
1
@for /f "delims= eol=" %%a in ('2^>nul dir/a-d/b "*.jpg"') do @set/a n+=1& set x=%%a& cmd/v/c ren "!x!" "!n!.jpg"
но когда заливаю фото в девайс (читалка), то фото не по порядку идут, а в таком 1, 10, 100, 101, 102 а мне надо что б было 1,2,3,4,5....
0
3126 / 1771 / 587
Регистрация: 26.04.2015
Сообщений: 5,854
07.04.2016, 12:25 5
FreT, Тогда переименовывать надо по такому принципу:
Windows Batch file
1
2
3
4
@echo off
set "src=papka"
for /f "delims= eol=" %%a in ('dir /a-d /b "%src%\*.jpg"') do set /a n+=1& cmd/v/c set "m=00!n!"^& ren "%src%\%%~nxa" "!m:~-3!.%%~xa"
exit
.
1
0 / 0 / 0
Регистрация: 09.09.2015
Сообщений: 23
07.04.2016, 14:06  [ТС] 6
чот не раотает
0
3126 / 1771 / 587
Регистрация: 26.04.2015
Сообщений: 5,854
07.04.2016, 14:12 7
Лучший ответ Сообщение было отмечено ComSpec как решение

Решение

FreT, В конце точка была лишней, забыл убрать, но работать должно было и с ней, просто вы ее наблюдали бы в имени в конце, исправил, запуск в папке с файлами:
Windows Batch file
1
2
3
@echo off
for /f "delims= eol=" %%a in ('2^>nul dir/a-d/b "*.jpg"') do set/a n+=1& cmd/v/c set "m=00!n!"^& ren "%%~nxa" "!m:~-3!%%~xa"
exit /b
.
1
3428 / 1969 / 632
Регистрация: 26.02.2014
Сообщений: 1,457
09.04.2016, 09:06 8
alpap, Вы ещё забыли убрать из кода %src%\. Я поправил Ваш код.

FreT, теперь пакетный файл должен работать. Запускайте его из папки с обрабатываемыми файлами.
2
0 / 0 / 0
Регистрация: 09.09.2015
Сообщений: 23
09.04.2016, 11:10  [ТС] 9
спасибо, теерь нормально
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.04.2016, 11:10

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Получить имена файлов из папки, переименовать файл
Можно ли получить имена всех файлов в папке например с расширением .dbf Как это сделать, чтоб они...

Перенос файлов из папки в папки под порядковыми номерами
Помогите пожалуйста написать bat фаил. Задача в следующем: существует 744 пустых папки ...

Записать имена и размер всех файлов каталога К в файл F (выбрать файлы с размером менее 100 Kb)
Записать имена и размер всех файлов каталога К в файл F (выбрать файлы с размером менее 100 Kb)....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.