Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/26: Рейтинг темы: голосов - 26, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 12.02.2022
Сообщений: 6

Пакетное переименование по заготовленному списку

12.02.2022, 08:30. Показов 6789. Ответов 13

Студворк — интернет-сервис помощи студентам
Доброго времени суток! Задача состоит в том чтобы переименовать пакетно множество объектов по заготовленному списку. Подробнее: Есть папка, в ней 500 фоток, необходимо чтобы каждому фото было присвоено название из списка. Важно: бат должен взять первую по списку фотку и переименовать ее, взяв первое название из списка. Затем он берет вторую фотку и присваивает ей второе имя. и так по кругу пока все 500 фото не будут переименованы в уникальные, заготовленные названия Заранее благодарю за ответ.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.02.2022, 08:30
Ответы с готовыми решениями:

Пакетное переименование
Добрый день. Не слишком силён в консоли. Нужно переписывать имена файлов "NAME.XX.wav" в "NAME.YY.wav", где XX...

Пакетное переименование файлов
Уважаемые форумчане, подскажите пожалуйста решение. Имеется множество файлов следующего вида: jsdsjlk_a.txt mfmsgslsfs_a.txt ...

Пакетное переименование файлов в каталоге
В папке есть некое количество файлов с расширением .jpg Надо с помощью батника переименовать эти файлы в вид 1.jpg, 2.jpg, 3.jpg и т.д.

13
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
12.02.2022, 12:30
Vladimirsv97, здравствуйте! По какому признаку отсортированы файлы в папке?
0
0 / 0 / 0
Регистрация: 12.02.2022
Сообщений: 6
12.02.2022, 16:06  [ТС]
По алфавиту
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
12.02.2022, 22:42
Пробуйте:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
set "names=C:\test_1\list.txt"
set "files=C:\test_2"
powershell -executionpolicy bypass -command "$names=Get-Content '%names%';" ^
    "$files=Get-ChildItem '%files%' -file;" ^
    "for ($i = 0; $i -le $names.count-1; $i++) {" ^
        "Rename-Item $files[$i].FullName $names[$i]" ^
    "}"
pause
exit
Примечание
1) Вместо C:\test_1\list.txt во 2-ой строчке указываете путь к файлу со списком
2) Вместо C:\test_2 в 3-ей строчке указываете путь к папке с файлами, которые нужно переименовать
0
0 / 0 / 0
Регистрация: 12.02.2022
Сообщений: 6
14.02.2022, 01:33  [ТС]
Вроде работает, но есть большое НО, которе я исправить не могу. Он сносит расширение файла .png. Я и скрывал расширение и оставлял его видимым- одинаково сносит.
Миниатюры
Пакетное переименование по заготовленному списку  
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
14.02.2022, 01:36
Vladimirsv97, на будущее учитесь детальнее описывать ТЗ. В списке каким образом указаны имена? С расширением или без?
0
0 / 0 / 0
Регистрация: 12.02.2022
Сообщений: 6
14.02.2022, 01:47  [ТС]
Вы пожалуйста не злитесь на меня, я профан в этих делах, и поверьте очень благодарен за ваш энтузиазм, правда)
В списке они указаны без расширения. Я сейчас наткнулся еще на один способ решения этой задачи. Можно в текстовом файле написать то, как файлы называются в папке и как должны называться. Пример: Имя файла -> Новое имя файла.
Батник например будет искать в указанной папке соответствие имени и потом менять его на тот что указан в списке.
Если можно, я бы и тот и тот вариант попробовал.
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
14.02.2022, 02:19
Лучший ответ Сообщение было отмечено Vladimirsv97 как решение

Решение

Цитата Сообщение от Vladimirsv97 Посмотреть сообщение
В списке они указаны без расширения. Я сейчас наткнулся еще на один способ решения этой задачи
Достаточно этого:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
set "names=C:\test_1\list.txt"
set "files=C:\test_2"
powershell -executionpolicy bypass -command "$names=Get-Content '%names%';" ^
    "$files=Get-ChildItem '%files%' -file;" ^
    "for ($i = 0; $i -le $names.count-1; $i++) {" ^
        "Rename-Item $files[$i].FullName """$($names[$i])$($files[$i].extension)"""" ^
    "}"
pause
exit
Добавлено через 19 минут
Цитата Сообщение от Vladimirsv97 Посмотреть сообщение
Можно в текстовом файле написать то, как файлы называются в папке и как должны называться. Пример: Имя файла -> Новое имя файла.
Батник например будет искать в указанной папке соответствие имени и потом менять его на тот что указан в списке.
Если принципиально, то можно и такое решение:
Windows Batch file
1
2
3
4
5
6
@echo off
set "names=C:\test_1\list.txt"
set "files=C:\test_2"
powershell -executionpolicy bypass -command "Get-Content '%names%' | foreach {rename-item """%files%\$($_.split(':')[0])""" """$($_.split(':')[1])"""}"
pause
exit
Примечание

В list.txt формат должен быть строго таким:
1.png:one.png
То есть старое имя файла с расширением, разделитель (обязательно двоеточие) и новое имя файла с расширением
1
0 / 0 / 0
Регистрация: 12.02.2022
Сообщений: 6
14.02.2022, 05:05  [ТС]
Дружище огромное спасибо, просто не представляешь какую огромную проблему я теперь решу легко. Вкратце 40к фотографий надо переименовать артикулом производителя, а они все уникальные, на 1 артикул приходится 10 фоток и вдобавок каждая из этих фоток должна в конце быть пронумерована 2352352_1, 2352352_2, и т.д.
С чем пришлось столкнуться: имена файлов были на русском языке- батник бил ошибку, перевел в кодировку 16-LE(именно текстовый файл, где названия были), сам батник остался в utf-8, и все как по маслу залетело.

P.S. Буду сильно признателен, если сможете написать батник, который наименование фоток из определенной папки скопирует и создаст текстовый документ, в который эти названия и поместит. Желательно, если название для создаваемой папки и место ее будущего расположения можно было бы менять.

Дайте свои контакты, скоро зп, отблагодарю как смогу)))
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
14.02.2022, 08:31
Цитата Сообщение от Vladimirsv97 Посмотреть сообщение
P.S. Буду сильно признателен, если сможете написать батник, который наименование фоток из определенной папки скопирует и создаст текстовый документ, в который эти названия и поместит. Желательно, если название для создаваемой папки и место ее будущего расположения можно было бы менять.
Пробуйте:
Windows Batch file
1
2
3
4
5
6
@echo off
set "list=C:\test_1\list.txt"
set "files=C:\test_2"
powershell -executionpolicy bypass -command "(get-childitem -file '%files%').basename | out-file '%list%' -encoding default"
pause
exit
Цитата Сообщение от Vladimirsv97 Посмотреть сообщение
Дайте свои контакты, скоро зп, отблагодарю как смогу)))
Вашей словесной благодарности достаточно
1
0 / 0 / 0
Регистрация: 12.02.2022
Сообщений: 6
14.02.2022, 14:32  [ТС]
Огонь, а можно чтобы и расширение в названии тоже вытягивалось, чтобы в дальнейшем, мне удобно было их вставлять в список для переименований
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
14.02.2022, 14:53
Цитата Сообщение от Vladimirsv97 Посмотреть сообщение
Огонь, а можно чтобы и расширение в названии тоже вытягивалось, чтобы в дальнейшем, мне удобно было их вставлять в список для переименований
Windows Batch file
1
2
3
4
5
6
@echo off
set "list=C:\test_1\list.txt"
set "files=C:\test_2"
powershell -executionpolicy bypass -command "(get-childitem -file '%files%').name | out-file '%list%' -encoding default"
pause
exit
0
0 / 0 / 0
Регистрация: 01.06.2023
Сообщений: 1
01.06.2023, 21:10
Цитата Сообщение от Karen87 Посмотреть сообщение
Пробуйте:
Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
set "names=C:\test_1\list.txt"
set "files=C:\test_2"
powershell -executionpolicy bypass -command "$names=Get-Content '%names%';" ^
    "$files=Get-ChildItem '%files%' -file;" ^
    "for ($i = 0; $i -le $names.count-1; $i++) {" ^
        "Rename-Item $files[$i].FullName $names[$i]" ^
    "}"
pause
exit
Примечание
1) Вместо C:\test_1\list.txt во 2-ой строчке указываете путь к файлу со списком
2) Вместо C:\test_2 в 3-ей строчке указываете путь к папке с файлами, которые нужно переименовать
добрый день.
все работает, за исключением пустяка. Пытаюсь переименовать на названия, в которых содержаться иероглифы, но юникод не поддерживает. Возможно ли это исправить? Спасибо.
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
01.06.2023, 22:36
pnkv, добрый! Примеры есть реальные?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.06.2023, 22:36
Помогаю со студенческими работами здесь

Пакетное переименование и перемещения файлов
Добрый день. Помогите пожалуйста решить мою проблему. Есть примерно 300 папок в которой находятся картинки . 1.Необходимо изначально...

Пакетное переименование файлов по маске
Всем привет. Нужна помощь. Задача: В папке есть файлы вида ААА(3_3_x).txt, где ААА - произвольный текст различной длины; x-некое число...

Пакетное переименование файлов по заданному шаблону
Нужен bat файл, который переименнует все файлы по указанному пути, вот так: name401 name402 ... name410 name411 ... ...

Как реализовать пакетное переименование папок исходя из списка в rules.txt?
Есть каталог, в этом каталоге есть подкаталоги с именами типа: ЛС213302580910 Имена подкаталогов всегда стандартной длинны и всегла...

Нестандартное пакетное переименование
Добрый вечер. Есть каталог с несколькими десятками папок. В каждой из этой папок находится от 1 до 10 ( или больше) файлов. Нужно...


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru