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

Переименовать файлы

10.12.2020, 16:30. Показов 4025. Ответов 26

Студворк — интернет-сервис помощи студентам
Добрый день. Помогите решить задачу.

В одной папке лежат файлы которые имеют следующую маску названия *_?.jpg

* - это артикул товара
? - порядковый номер (только одна цыфра)

Артикул и номер всегда отделяются нижним подчеркиванием.

Файлы в папке размещены по порядку вот так (ниже пример):
3920_1.jpg
3920_2.jpg
3920_3.jpg
3920_4.jpg
3920_6.jpg
3921_1.jpg
3921_2.jpg
3921_3.jpg
3921_4.jpg
3921_6.jpg
3922_1.jpg
3922_2.jpg
3922_3.jpg
3922_4.jpg
3922_6.jpg
05451_1.jpg
05451_2.jpg
05451_6.jpg
05456_1.jpg
05456_2.jpg
05456_6.jpg
05461_1.jpg
05461_6.jpg
05466_1.jpg
05466_6.jpg

Тоесть как видно, в порядке есть пробелы. Нужно чтобы порядок всегда был в один шаг, тоесть превратить все вот в такой список. Артикул изменять нельзя

3920_1.jpg
3920_2.jpg
3920_3.jpg
3920_4.jpg
3920_5.jpg
3921_1.jpg
3921_2.jpg
3921_3.jpg
3921_4.jpg
3921_5.jpg
3922_1.jpg
3922_2.jpg
3922_3.jpg
3922_4.jpg
3922_5.jpg
05451_1.jpg
05451_2.jpg
05451_3.jpg
05456_1.jpg
05456_2.jpg
05456_3.jpg
05461_1.jpg
05461_2.jpg
05466_1.jpg
05466_2.jpg

Помогите пожалуйста с батником, который выполнит эту задачу. Батник нужно запускать в этой папке.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.12.2020, 16:30
Ответы с готовыми решениями:

Переименовать файлы
Здравствуйте! Помогите пожалуйста написать bat'ник. Есть папка, в которой сотни 3 картинок JPG, с разными длинными названиями. Нужно...

Переименовать файлы в папках
Добрый день! Дано: папка foto, в ней неограниченное число папок с названиями по принципу "052-01", "052-02" и т.д. В...

Переименовать файлы по порядку
Количества файлов и новых имён равны. Можно задать соответствие файлов по порядку перечню имён? Первый файл получит первое имя в перечне и...

26
0 / 0 / 0
Регистрация: 31.01.2020
Сообщений: 76
11.01.2021, 17:17  [ТС]
Студворк — интернет-сервис помощи студентам
это окончательно

Добавлено через 57 минут
Последняя просьба окончательная, так решит не только эту задачу, но и другие с которыми я сталкиваюсь
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
11.01.2021, 18:05
Цитата Сообщение от Korzhik1991 Посмотреть сообщение
так решит
неа
и вот почему
насколько я понял порядковый номер от 0 до 9
Цитата Сообщение от Korzhik1991 Посмотреть сообщение
порядковый номер (только одна цыифра)
Вы хотите задавать порядок с ...
значит диапазон будет [x...8], 8 так как следующий уже 9, т.е. переименовывать некуда
но вот какой казус. Найдем мы, например, наименьший номер из @(4, 5, 7, 8, 9) - 4, задаем его и что должны получить?
---
1. С учетом увеличения +1
@(5, 6, 7, 8, 9) - часть номеров осталась как есть
2. Просто выранивание
@(4, 5, 6, 7, 8) - тут наоборот, уменьшили уже диапазон
---
и что делать если @(6, 7, 9), какие хоть варианты могут быть?

Добавлено через 5 минут
до сих пор нет цели за которую я спрашивал. Для чего конкретно это надо, тогда будет понятнее тому кто пишет код чего надо добиться.

Добавлено через 3 минуты
в том же excele не проще это гиперссылками делать, там и выборку и перетасовку на раз-два можно сделать.
0
0 / 0 / 0
Регистрация: 31.01.2020
Сообщений: 76
11.01.2021, 19:13  [ТС]
Цель такая.

Заказчик требует фотографии (это товары) с артикулами, чтобы они начинались с №1, например хххх_1 и т.д, yyyy_1, yyyy_2 и т.д.
У меня ж в папке в связи с некоторыми изменениями файлы лежат не по порядку:
может быть 1,2,3,5,7 или как попало
Нужно чтобы файлы выровнялись по порядку без пробелов, тоесть из 1,2,3,5,7 стало 1,2,3,4,5 (ясно что 1,2,3 не поменяются в именах). № начинается с единицы и до бесконечности с шагом +1 (а не до 9, как в сообщении выше)

Но тут уже далее идет другой нюанс связанный с самой картинкой. На картинке №1 изображено 2 ракурса товара, а заказчик не принимает такое(ему нужна одна картинка, значит один ракурс). Я такую картинку через фотошоп разделяю на 2 картинки, и получается, что номер 1 разделяется на 1 и 2. Следовательно весь порядок файлов 2,3,4,5 нужно сдвинуть на +1, чтобы освободить ячейку №2.
Но прикол еще, что не все №1 имеют 2 ракурса на изображении, может быть и 1 ракурс, тоесть такая картинка клиента устраивает.

По этому проще всего сразу 1,2,3,5,7 переименовать в порядок с заданного пользователем числа (в основном это будет 2, но кто его знает, может мне захочется и с тройки начать). Тоесть батник говорит "Я сейчас переименую тебе артикулы по порядку, только ты уважаемый будь добр напиши с какого порядкого номера начать"
0
3449 / 1110 / 494
Регистрация: 29.05.2016
Сообщений: 4,566
11.01.2021, 19:25
В папке собраны файлы, у которых часть имени файла до символа "_" одинаковая или разная?

Добавлено через 2 минуты
В идеале, чтобы в папке, в которой находятся файлы Вы выполнили команду:
Windows Batch file
1
dir /a-d/b
и показали результат. Проще будет смоделировать ситуацию при написании и отладке скрипта
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
11.01.2021, 20:19
Цитата Сообщение от Korzhik1991 Посмотреть сообщение
Следовательно весь порядок файлов 2,3,4,5 нужно сдвинуть на +1
а я выше спрашивал и говорил об этом, насколько важно чтобы в фото 4 (BMW), осталось именно BMW и в случае когда оно уедет в фото 5. Потому как при потоковом последовательном переименовании с восполнением пробелов BMW вполне себе могло уехать в фото 12 или 2. Я думаю решать эту задачу надо во-первых никак не на cmd, а во-вторых проще привязывать нужные фото, опять же как и говорил выше, не папка - группа автомобили, а пусть лучше больше папок, но конкретно папка - BMW ну или все то же на линках или в таблице какой-то программы или через ФМ.
0
0 / 0 / 0
Регистрация: 31.01.2020
Сообщений: 76
11.01.2021, 22:47  [ТС]
Я так понимаю, это проблема сделать батник чтобы он сохранял артикулы, но при этом переименовал порядок файлов начиная с требуемого значения?
По сути, этот код делает работу верно

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
@echo off
setlocal enabledelayedexpansion
for /f "tokens=1-3 delims=_." %%a in ('dir /a-d/b *.jpg') do (
    if defined var_1 (
        if "!var_1!"=="%%a" (
            set /A count+=1
            if not %%b==!count! (
                ren "%%a_%%b.%%c" "%%a_!count!.%%c"
            )
        ) else (
            set /A count=1
            set "var_1=%%a"
        )
    ) else (
        set "var_1=%%a"
        set /A count+=1
    )
)
pause
Но хочется первый порядковый номер задать вручную с клавиатуры
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
12.01.2021, 00:26
Цитата Сообщение от Korzhik1991 Посмотреть сообщение
первый порядковый номер задать вручную
это должен быть наименьший номер или более, правильно?
в начале кода, например после setlocal ..., сделать вставку:
Windows Batch file
1
2
3
for /f "tokens=2 delims=_" %%a in ('dir /a-d/b "*.jpg"^|sort /r') do set "min=%%~na"
echo Введите начало диапазона равное или более %min%& set /p nnd=
echo %nnd%
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.01.2021, 00:26

Переименовать рекурсивно файлы в папках
Добрый день очень нужна помощь. Есть основная папка в которой множество других папок. а этих папках папки вида "ХХХХХ_НАЗВАНИЕ...

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

Переименовать файлы во вложенных каталогах
Есть папка, в которой имеются вложенные папки. В них файлы. Нужно присвоить файлам порядковые номера. Т.е. 01.jpg, 02.jpg, 03.jpg, 04.jpg и...

Переименовать, переместить файлы в папках
Здравствуйте, прошу помощи в решении проблемы. Исходные данные: папка с фотографиями, в ней много других папок вида ID (цифры от 1...

Переместить файлы и переименовать по порядку
Помогите пожалуйста! Есть папка 1, в которой много разных файлов с разными именами формата *txt Необходимо все скопировать в папку 2 с...


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru