0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 9
|
|
1 | |
Переименование файлов именами существующих файлов28.01.2019, 00:09. Показов 7559. Ответов 13
Метки нет (Все метки)
Доброго времени суток! Помогите, пожалуйста, решить задачу. Не программист, сам бат-ники писать их не умею, знаю только, что с их помощью можно решить мой вопрос.
Условия. Есть некая, любая, папка(dir1). В ней лежат файлы: картинки, чаще всего jpeg. Имена файлов всегда начинаются с нумерации, первые четыре символа, в виде 0001 ... 9999. Есть папка(dir2), но это может быть одна и та же папка(как будет нужно для бат-ника так и сделаю). В ней лежат файлы, в том же порядке, т.е. с такой же нумерацией, как в dir1. Это нужные имена файлов. Только после первых четырех цифр идет набор символов, буквы/цифры. Длина имён произвольная. В конце всегда идет размер файла в пикселях, разный, от 7 до 9 символов. Пример: 0003_1548112401959772_cde1_e_preview_4_fade_res640x292.jpg. Количество файлов в dir1 и dir2, соответственно, одинаковое. Задача. Нужно взять имена всех файлов из dir2 и заменить ими все файлы в dir1, сохраняя последовательность, т.е. первые четыре цифры. Или сделать это в одной папке, сразу с заменой файлов, из которых берутся имена. P.S. Вроде как, есть программа позволяющая в имя файла(jpg) дописать его разрешение в пикселях, но.. Беда в том, что программа генерирующая имена файлов(dir2), часто ошибается с именем/размером на 1 пиксель. И формат картинки не всегда jpg. Поэтому просто добавить размер в имя - не вариант, к сожалению. Нужна только замена файла с заданным именем.
0
|
28.01.2019, 00:09 | |
Ответы с готовыми решениями:
13
Переименование файлов по определённому правилу и их перемещение в папки с соответствующими именами Распределение файлов в папках по подпапкам с именами, соответствующими именам этих файлов Копирование файлов из разных каталогов в каталоги с именами, соответствующими номерам в именах файлов Создание папок с именами заданных файлов и перемещение этих файлов в созданные папки |
199 / 209 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
|
||||||
28.01.2019, 01:37 | 2 | |||||
Сообщение было отмечено userbat как решение
Решение
Попробуй
Да,вопрос.Названия файлов одинаковое,а расширение тоже?ИЛи например в одной папке 0002.jpg , а в другой папке 0002_ваыаыаыв_ываыаыв.png и надо переименовать 1 файл вторым именем.
2
|
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 9
|
|
28.01.2019, 03:44 [ТС] | 3 |
Большое спасибо за ответ! Да, расширение файлов тоже одинаковое. Скажите, пожалуйста, как теперь использовать этот код?) Откуда запускать файл с расширением *.cmd и как правильно указывать путь к папкам? Указал путь в кавычках: "x:\Temp\6_1" и "x:\Temp\6_2". Запустил *.cmd из произвольного места на диске, ничего не происходит)
0
|
199 / 209 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
|
|
28.01.2019, 12:15 | 4 |
В 3 строке путь с файлами ,имя которых имеют пиксельные значения: 0005_6543рпар_рппро_560х654.jpg и так далее.В 11 строке путь к файлам с именами от 0001 до 9999.В 12 строке надо прописать такой же путь ,как будет у тебя в 11 строке.
Батник можно запускать прямо с рабочего стола.
1
|
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 9
|
|
28.01.2019, 16:47 [ТС] | 5 |
ОГРОМНОЕ спасибо, еще раз. Всё работает)
Добавлено через 3 часа 32 минуты Можно еще маленькую просьбу?) Надо чтобы в папке dir1, скрипт заменял любое имя файла после первых четырёх цифр; соответственно само имя тоже может быть произвольным. Пример. Dir1(до скрипта): 0001_абра-кадабра.jpg Dir2: 0001_res640x480.jpg После выполнения скрипта: Dir1: 0001_res640x480.jpg
0
|
199 / 209 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
|
||||||
28.01.2019, 18:45 | 6 | |||||
0
|
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 9
|
|
28.01.2019, 23:40 [ТС] | 7 |
В консоли 3 раза написал: "Ошибка в синтаксисе команды". И не переименовал 3 файла, вот их имена:
0007_CRW_3067 Panorama_preview_2_1_5_fade_4_res.jpg 0008_CRW_3087 Panorama_preview_2_5_crop 1366_fade_2_res.jpg 0013_PSD 006_My_e_preview_1_fade_res.jpg Сначала подумал, может из-за длины имен, но потом увидел, что в переименованных были и более длинные.
0
|
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
||||||
29.01.2019, 01:11 | 8 | |||||
userbat,
так пойдет? (в dir1 и dir2 в точности так как в вашей задаче)
0
|
199 / 209 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
|
|
29.01.2019, 01:25 | 9 |
Конечно не переименовал.В их именах есть пробелы.
И еще одно НО.Работает только ,если названия 0000 до 9999,если 1000-работать не будет. Попробуй в 15 строке после REN заключить каждую подстроку в отдельные кавычки,должно аолучится типа такого: "рпрр" "оорпр"
1
|
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 9
|
|
29.01.2019, 01:55 [ТС] | 10 |
Про количество понятно, без вопросов. ...только опечатка, наверное, 10 000 имелось ввиду?) ...в программировании чайник, не знал, что наличие пробелов тоже надо прописывать в задаче) ...Да, теперь всё работает! Спасибо!)
alpap, Спасибо за помощь! Работает, но в базовом варианте, по ТЗ первого поста. На тот момент не рассчитал всех тонкостей предстоящей работы. Тот же вопрос: можно чтобы в папке dir1 скрипт работал для любых имён файлов, после первых 4-х цифр в имени, включая наличие пробелов?
0
|
199 / 209 / 69
Регистрация: 09.02.2016
Сообщений: 1,040
|
|
29.01.2019, 02:04 | 11 |
1.Да.10000.В общем все,что более первых 4 символов.
2.Конечно можно и такое сделать.Но вмегда есть НО.Например наличие постоянного символа после первых символрв в нащвании файла.В примере это _ .Постояннин ли он, вот в чем вопрос.
0
|
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
||||||
29.01.2019, 02:51 | 12 | |||||
1
|
0 / 0 / 0
Регистрация: 07.12.2015
Сообщений: 9
|
|
29.01.2019, 14:27 [ТС] | 13 |
Ребята, спасибо! Очень выручили! Оба варианта работают!)
"_" - постоянный символ. alpap, при выполнении задачи скрипт написал много раз "Файл с таким именем уже существует или не найден" и "не удаётся найти указанный файл", НО переименование выполнил правильно ...наверное просто побочный эффект)
0
|
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
|
|
29.01.2019, 15:44 | 14 |
значит файлы с такими именами как в dir2 были в dir1, они переименованы не будут, но не переименуются и те в которых номер совпадет, т.е. нельзя чтобы файлы были с идентичными именами и даже с именами в которых первая цифровая часть до _ будет в нескольких файлах, такие файлы должны быть уникальны.
А чтобы не наблюдать строки ошибки занулите их вот так: ... 2>nul ren "%%A_%%B" "%%~na%%~xB"
0
|
29.01.2019, 15:44 | |
29.01.2019, 15:44 | |
Помогаю со студенческими работами здесь
14
Копирование файлов по списку в текстовом файле в папки с именами, соответствующими расширениям этих файлов Перемещение файлов в каталоги, создаваемые в соответствии с именами или частями имён этих файлов Сравнение файлов в папке и создание папок с именами файлов Переименование PDF-файлов в имена, берущиеся из содержимого этих файлов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |