![]() |
Переименование указанного количества файлов следуя нумерации
Здравствуйте. Есть ли способ переименовать заданное количество файлов в указанной папке, продолжая нумерацию и названия файлов, присутствующих в папке?
К примеру в папке 30 файлов, 10 файлов вида 0001start.avi, 0002start.wmv, 0003start.avi - 0010start.mpg, остальные 20 имеют различные названия. Я задал количество 20 файлов. Можно ли сделать так, чтобы код переименовывал файлы имеющие различные названия, продолжая нумерацию и повторяя название имеющимся, т.е. в данном примере 20 файлов должны переименоваться на 0011start.*, 0012start.*, 0013start.* - 0030start.*. Известно, что нумерация всегда четырехзначная, слова после нумерации в одной папке всегда одинаковы (но они могут быть не только "start"), расширения могут быть различные (видео файлы) Нумерация может быть не с еденицы, к примеру с 0546stop.* 0547stop.* :o |
Alexander_88, в общем и целом — можно. Дьявол, как обычно, кроется в деталях.
К чему я это? Дело в том, что подобного рода переименования, если только они не производятся планово, регулярно и на постоянной основе, проще и удобнее всего делать «ручками» в любом приличном файловом менеджере или специально на то предназначенном приложении. Например: У Вас как с этим? |
Здравствуйте. Alexander_88.
Код:
@echo off |
Iska, да, я это делаю в тотал командоре, просто необходимо заходить в него, заходить в папки, их штук 10, и в каждой выделять файлы , писать маски. А если бы был такой код чтоб отслеживал нумерацию и проолжал после самой большой, значительно бы можно было сэкономить время, даже текст можно было самому в коде ручками прописать, а нумерация чтоб как то продолжалась, с таким кодом создать несколько бат файлов (на разные папки) и разместить их на рабочий стол, если потребуется продолжить нумерацию файлов в какой то папке, запустил бат со стола и готово :)
|
Georgio, спасибо, отлично работает, а можно ли задать число файлов для переименования?
|
Цитата:
Код:
@echo off |
Georgio, спасибо, проверил, все работает :)
|
Здравствуйте, подскажите пожалуйста, что нужно изменить в последнем коде, если у меня теперь у файлов нумерация пишется в конце...
т.е. start0001.avi, start0002.avi, start0003.avi и т.д. я строчку: Код:
set "reg_exp=^[0-9][0-9][0-9][0-9]start\...*" Код:
set "reg_exp=^start[0-9][0-9][0-9][0-9]\...*" |
Ещё замените
Код:
dir /a-d/b/o-n "%folder%\*start.*"^| findstr /ir "%reg_exp%" Код:
dir /a-d/b/o-n "%folder%\start*.*"^| findstr /ir "%reg_exp%" Код:
call ren "%folder%\%%i" "%%count:~1%%start%%~xi" Код:
call ren "%folder%\%%i" "start%%count:~1%%%%~xi" |
Спасибо за ответ
вот в этом посте http://forum.oszone.net/post-2512648-9.html был заменен код немножко Может из - за этого что - то другое заменить нужно? (я просто забыл, что код заменяли) Я заменил код, как вы сказали. Сейчас у меня вот так: Код:
@echo off переименовались несколько файлов на start с разным расширением, а так же на имена имена start1 start2 ... |
Здравствуйте.
Помогите! Есть ли в вашей практике вариант bat файла для запуска в директории с файлами, которые надо пронумеровать. Добавить номер перед именем файла (не меняя его), например: 001 имя.txt (здесь пробел между номером и именем файла) и т.д. до 150, не зависимо от количества фалов в директории. Нумеруются строго 150 файлов. Если их < 150, заканчивает работу. Если их >150, нумерует 150 и заканчивает работу. Если в числе нумеруемых файлов попадаются файлы уже пронумерованные, то их номера заменяются на текущие. Спасибо! |
Georgio
Здравствуйте. Помогите! Есть ли в вашей практике вариант bat файла для запуска в директории с файлами, которые надо пронумеровать. Добавить номер перед именем файла (не меняя его), например: 001 имя.txt (здесь пробел между номером и именем файла) и т.д. до 150, не зависимо от количества фалов в директории. Нумеруются строго 150 файлов. Если их < 150, заканчивает работу. Если их >150, нумерует 150 и заканчивает работу. Если в числе нумеруемых файлов попадаются файлы уже пронумерованные, то их номера заменяются на текущие. Спасибо! |
Здравствуйте.. опять потревожила эта задача с наименованиями типа start0001, start0002 (цифры в конце). Может есть, кто в курсе темы?
Делаю так (пытаюсь хотя бы файл переименовать): Код:
@echo off |
Если для BAT это не корректно, может есть решение для PowerShell (поменял, на "Любой язык").
|
Alexander_88, Вот вариант
Код:
@Echo Off В первом For просматриваем файлы startNNNN.* и перенумеровываем их вподряд start0001, start0002 ... Во втором For переименовываем все остальные файлы по указанной маске в start c последующими номерами Если этого не нужно, этот for надо или заремить, или убрать Есть возможность ограничить число переименований файлов (Set /A Max=25) Если этого не надо, можно задать заведомо большое число, или заремить If %Num% GTR %5 Exit /B 1 То же для NNNNstart.*
Код:
@Echo Off |
Спасибо, попробовал убрать, первый for, потом второй.
Но в обоих случаях переименовываются сами файлы start. Видимо нужно было конкретнее написать.. Скрипт не должен их трогать, переименовывать нужно только другие файлы (все, кроме start****). Необходимо продолжить нумерацию вперед, не принимая во внимание предыдущую нумерацию. Т.е. найти самый последний номер (самый большой) и продолжить от него нумерацию. например было: Код:
00uyjkskh.wmv стало: Код:
start0056.mp4 00uyjkskh.wmv > start0059.wmv ljsfdhgsjkd.avi > start0060.avi Файлы start0056.mp4, start0057.avi, start0058.wmw остались неизменными. Файлы, которые переименовываются, могут переименовываться в любой последовательности, не обязательно по алфавиту, главное, чтобы не переименовывались файлы start****, переименовываться должны все другие (точнее не все, а указанное мной количество. |
Alexander_88, Предыдущий вариант переименовывает все файлы, нумерацию делает с 1. Сделано в условиях нечеткой постановки. Если надо продолжить нумерацию, и не обращать внимание, есть ли там прорехи, и переименовать нужное кол-во файлов, вот вариант:
Код:
@Echo Off |
Спасибо, все работает, а количество задавать только здесь?
Код:
Set /A Max=2 |
Alexander_88, я стремлюсь, чтобы все исходные данные были в одном месте, так что, только здесь и один раз.
|
а не подскажете вариант (на всякий случай) для NNNNstart ?
Поменял, но видимо, что то еще надо изменить, файлы переименовываются, но нету продолжения от максимального номера.. переименовывается с 0001start Код:
@Echo Off |
Alexander_88,
вариант (на всякий случай) для NNNNstart
Код:
@Echo Off |
Спасибо, удалил красные строки, теперь все работает для NNNNstart :)
|
Время: 11:00. |
Время: 11:00.
© OSzone.net 2001-