Просмотр полной версии : Bat-файл, сортировка фотографий
German Stimban
08.02.2010, 18:08
Добрый день.
Есть папка, в которой расположено много фотографий (все с расширением .jpg). Необходимо переименовать эти фотографии в последовательность 1.jpg, 2.jpg, 3.jpg - порядок следования файлов не играет роли, главное чтобы были такие имена. На компьютере не установлено компиляторов и прочих радостей жизни, поэтому желательно сделать всё с помощью BAT-файла. К сожалению, я уже почти забыл, как это делается для Windows, поэтому очень надеюсь на вашу помощь.
Заранее спасибо.
Renat Akhtyamov
08.02.2010, 18:26
Добрый день.
Есть папка, в которой расположено много фотографий (все с расширением .jpg). Необходимо переименовать эти фотографии в последовательность 1.jpg, 2.jpg, 3.jpg - порядок следования файлов не играет роли, главное чтобы были такие имена. На компьютере не установлено компиляторов и прочих радостей жизни, поэтому желательно сделать всё с помощью BAT-файла. К сожалению, я уже почти забыл, как это делается для Windows, поэтому очень надеюсь на вашу помощь.
Заранее спасибо.
http://www.philosoft.ru/batniki.zhtml
ищи
Массовая обработка файлов. Команда for
Vitaliy Fioktistov
08.02.2010, 18:33
Добрый день.
Есть папка, в которой расположено много фотографий (все с расширением .jpg). Необходимо переименовать эти фотографии в последовательность 1.jpg, 2.jpg, 3.jpg - порядок следования файлов не играет роли, главное чтобы были такие имена. На компьютере не установлено компиляторов и прочих радостей жизни, поэтому желательно сделать всё с помощью BAT-файла. К сожалению, я уже почти забыл, как это делается для Windows, поэтому очень надеюсь на вашу помощь.
Заранее спасибо.
А Total тоже не установлен? У него есть такие пряники, причем мощные.
Artur Alikulov
08.02.2010, 18:41
А Total тоже не установлен? У него есть такие пряники, причем мощные.
Ага в Total Commander это решается банальным выделением всех файлов и нажатием Ctrl+M.
Renat Akhtyamov
08.02.2010, 18:45
А Total тоже не установлен? У него есть такие пряники, причем мощные.
Ага в Total Commander это решается банальным выделением всех файлов и нажатием Ctrl+M.
На "безTotalье" и батник - Total
German Stimban
08.02.2010, 21:48
А Total тоже не установлен? У него есть такие пряники, причем мощные.
Вопрос почти решён. Теперь интересен именно принципиальный момент сделать это всё bat, Just For Fun
Vitaliy Fioktistov
08.02.2010, 21:51
Вопрос почти решён.
Ты меня пугаешь. Сколько там терабайт???
shumbola
08.02.2010, 22:36
Добрый день.
Есть папка, в которой расположено много фотографий (все с расширением .jpg). Необходимо переименовать эти фотографии в последовательность 1.jpg, 2.jpg, 3.jpg - порядок следования файлов не играет роли, главное чтобы были такие имена. На компьютере не установлено компиляторов и прочих радостей жизни, поэтому желательно сделать всё с помощью BAT-файла. К сожалению, я уже почти забыл, как это делается для Windows, поэтому очень надеюсь на вашу помощь.
Заранее спасибо.
Вот вам скрипт за 5 мин: :-)
@echo off
set j=0
for %%i in (*.jpg) do (
set /a j+=1
call :renamefile %%i %j
)
goto :end
:renamefile
ren %1 %j%.jpg
:end
Скрипт запускать внутри той директории, где производится переименовывание. Или подправить в коде
Если у вас получиться получше, выложите здесь, может быть еще кому пригодится.
Georgick
09.02.2010, 02:33
кстати, в windows тоже есть пакетное переименование файлов обычным кликом мышки. Выделяются все файлы, далее делается переименование только одного файла. Далее система сама переименовывет все по принципу - к новому введенному имени добавляется номер файла в скобках, т.е что-то такого плана будет - file.jpg, file(1).jpg, file(2).jpg
Недословно то, что требует топикстартер, но может пригодиться.
На практике использовал для случая, когда аудиомагнитола не распознавала мp3-ки с кирилическим названием на флешке. Выручило такое пакетное переименование.
Concerned
09.02.2010, 10:30
а как переименовать у всех файлов в папке, только часть названия?
Прим.: file(1600x1200).jpg, file(1680x1050).jpg, file(1920x1200).jpg и т.д., где нужно убрать (или, что еще лучше - заменить на другое) слово file, оставив при этом, оригинальными оставшиеся части имен каждого файла.
Ruslan Juldashev
09.02.2010, 10:55
а как переименовать у всех файлов в папке, только часть названия?
Прим.: file(1600x1200).jpg, file(1680x1050).jpg, file(1920x1200).jpg и т.д., где нужно убрать (или, что еще лучше - заменить на другое) слово file, оставив при этом, оригинальными оставшиеся части имен каждого файла.
В TotalCMD:
https://img.uforum.uz/images/cnaczke3078925.png
Ну или можно опять же батник написать. Половину товарищ shumbola уже выложил.
Concerned
09.02.2010, 11:06
[n5-100] это диапазон букв (с пятой буквы - по последней), которые он не будет переименовывать, я правильно понял?
На практике использовал для случая, когда аудиомагнитола не распознавала мp3-ки с кирилическим названием на флешке.
Для этого я пользуюсь mp3translit. Весит 200 Кб. Быстро и пакетно, можно еще и правила транслитерации использовать. Это так, кстати.
Ruslan Juldashev
09.02.2010, 13:22
[n5-100] это диапазон букв (с пятой буквы - по последней), которые он не будет переименовывать, я правильно понял?
Ага.
German Stimban
09.02.2010, 17:03
а как переименовать у всех файлов в папке, только часть названия?
Прим.: file(1600x1200).jpg, file(1680x1050).jpg, file(1920x1200).jpg и т.д., где нужно убрать (или, что еще лучше - заменить на другое) слово file, оставив при этом, оригинальными оставшиеся части имен каждого файла.
Во времена DOS-а срабатывала команда:
ren file* new*
Просто заменялась подстрока file на new
Concerned
09.02.2010, 17:48
а как переименовать у всех файлов в папке, только часть названия?
Прим.: file(1600x1200).jpg, file(1680x1050).jpg, file(1920x1200).jpg и т.д., где нужно убрать (или, что еще лучше - заменить на другое) слово file, оставив при этом, оригинальными оставшиеся части имен каждого файла.
Во времена DOS-а срабатывала команда:
ren file* new*
Просто заменялась подстрока file на new но, ведь в данном случае, происходит не массовое переименование?
Shumbola,
если не трудно - на примере вашего файла описанного выше, поясните как это сработает в моем случае...
Ведь, тут нужны какие-то ограничители по диапазону переименовываемых или по количеству не исправляемых символов, как в тотале, но тотал не везде есть, и бегать с установщиком везде и всюду как-то не то. А зная какая команда, может осуществить задуманное средствами виндовс, будет замечательно.
German Stimban
09.02.2010, 18:00
но, ведь в данном случае, происходит не массовое переименование?
В Dos данная команда переименовывала все файлы, которые начинаются с file.
shumbola
09.02.2010, 21:04
Shumbola,
если не трудно - на примере вашего файла описанного выше, поясните как это сработает в моем случае...
За пояснениями в гугл :-)
Вот вам скрипт, который делает то что вы спросили:
@echo off
setlocal enabledelayedxpansion
for /f "tokens=* delims= " %%a in ('dir/b/a-d *.mp3') do (
for /f "tokens=1-4 delims=()" %%i in ("%%a") do (
echo %%a %%j%%k
)
)
Поиграя с %%j, %%k и т.д. переменными, можно добытся разного рода переименовывания.
Надеюсь с tokens, delims вы не будете испытывать проблемы. ;-)
P.S. Не обессудте, но на все остальные просьбы я теперь буду отвечать стандартно, в гугл :-)
Concerned
10.02.2010, 11:01
Shumbola,
если не трудно - на примере вашего файла описанного выше, поясните как это сработает в моем случае...
За пояснениями в гугл :-)
Вот вам скрипт, который делает то что вы спросили:
@echo off
setlocal enabledelayedxpansion
for /f "tokens=* delims= " %%a in ('dir/b/a-d *.mp3') do (
for /f "tokens=1-4 delims=()" %%i in ("%%a") do (
echo %%a %%j%%k
)
)
Поиграя с %%j, %%k и т.д. переменными, можно добытся разного рода переименовывания.
Надеюсь с tokens, delims вы не будете испытывать проблемы. ;-)
P.S. Не обессудте, но на все остальные просьбы я теперь буду отвечать стандартно, в гугл :-)
мне именно и нужно было узнать где - этот параметр, с которым надо "играться", спасибо!
vBulletin® v3.8.5, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot