|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » Любой язык - [решено] Переименование указанного количества файлов следуя нумерации |
|
|
Любой язык - [решено] Переименование указанного количества файлов следуя нумерации
|
Ветеран Сообщения: 531 |
Профиль | Отправить PM | Цитировать
Здравствуйте. Есть ли способ переименовать заданное количество файлов в указанной папке, продолжая нумерацию и названия файлов, присутствующих в папке?
К примеру в папке 30 файлов, 10 файлов вида 0001start.avi, 0002start.wmv, 0003start.avi - 0010start.mpg, остальные 20 имеют различные названия. Я задал количество 20 файлов. Можно ли сделать так, чтобы код переименовывал файлы имеющие различные названия, продолжая нумерацию и повторяя название имеющимся, т.е. в данном примере 20 файлов должны переименоваться на 0011start.*, 0012start.*, 0013start.* - 0030start.*. Известно, что нумерация всегда четырехзначная, слова после нумерации в одной папке всегда одинаковы (но они могут быть не только "start"), расширения могут быть различные (видео файлы) Нумерация может быть не с еденицы, к примеру с 0546stop.* 0547stop.* |
|
Отправлено: 21:17, 23-08-2014 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Alexander_88, в общем и целом — можно. Дьявол, как обычно, кроется в деталях.
К чему я это? Дело в том, что подобного рода переименования, если только они не производятся планово, регулярно и на постоянной основе, проще и удобнее всего делать «ручками» в любом приличном файловом менеджере или специально на то предназначенном приложении. Например: У Вас как с этим? |
Отправлено: 22:21, 23-08-2014 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Здравствуйте. Alexander_88.
@echo off chcp 1251>nul set "folder=D:\Work\118\указанная папка" set "reg_exp=^[0-9][0-9][0-9][0-9]start\...*" for /f "delims=" %%i in (' dir /a-d/b/o-n "%folder%\*start.*"^| findstr /ir "%reg_exp%" ') do ( set max=%%i goto:# ) :# set count=1%max:~,4% for /f "delims=" %%i in (' dir /a-d/b "%folder%"^| findstr /irv "%reg_exp%" ') do ( set /a count+=1 call ren "%folder%\%%i" "%%count:~1%%start%%~xi" ) exit /b |
Последний раз редактировалось Georgio, 06-03-2016 в 15:55. Причина: опечатка. Отправлено: 22:31, 23-08-2014 | #3 |
Ветеран Сообщения: 531
|
Профиль | Отправить PM | Цитировать Iska, да, я это делаю в тотал командоре, просто необходимо заходить в него, заходить в папки, их штук 10, и в каждой выделять файлы , писать маски. А если бы был такой код чтоб отслеживал нумерацию и проолжал после самой большой, значительно бы можно было сэкономить время, даже текст можно было самому в коде ручками прописать, а нумерация чтоб как то продолжалась, с таким кодом создать несколько бат файлов (на разные папки) и разместить их на рабочий стол, если потребуется продолжить нумерацию файлов в какой то папке, запустил бат со стола и готово
|
Отправлено: 22:34, 23-08-2014 | #4 |
Ветеран Сообщения: 531
|
Профиль | Отправить PM | Цитировать Georgio, спасибо, отлично работает, а можно ли задать число файлов для переименования?
|
|
Отправлено: 23:03, 23-08-2014 | #5 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать Цитата Alexander_88:
@echo off chcp 1251>nul set number=20 set "folder=D:\Work\121\указанная папка" set "reg_exp=^[0-9][0-9][0-9][0-9]start\...*" for /f "delims=" %%i in (' dir /a-d/b/o-n "%folder%\*start.*"^| findstr /ir "%reg_exp%" ') do ( set max=%%i goto:# ) :# set count=1%max:~,4% for /f "delims=" %%i in (' dir /a-d/b "%folder%"^| findstr /irv "%reg_exp%" ') do ( set /a count_2+=1 for /f %%j in (' set /a count_2 ') do ( if %%j leq %number% ( set /a count+=1 call ren "%folder%\%%i" "%%count:~1%%start%%~xi" ) else ( exit /b ) ) ) exit /b |
|
Последний раз редактировалось Georgio, 06-03-2016 в 15:56. Причина: опечатка. Отправлено: 09:22, 24-08-2014 | #6 |
Ветеран Сообщения: 531
|
Профиль | Отправить PM | Цитировать Georgio, спасибо, проверил, все работает
|
Отправлено: 09:35, 24-08-2014 | #7 |
Ветеран Сообщения: 531
|
Профиль | Отправить PM | Цитировать Здравствуйте, подскажите пожалуйста, что нужно изменить в последнем коде, если у меня теперь у файлов нумерация пишется в конце...
т.е. start0001.avi, start0002.avi, start0003.avi и т.д. я строчку: изменил на: Но к сожалению это не помогло |
Отправлено: 15:37, 05-03-2016 | #8 |
Ветеран Сообщения: 874
|
Профиль | Отправить PM | Цитировать |
Последний раз редактировалось Georgio, 06-03-2016 в 15:56. Причина: опечатка. Отправлено: 16:03, 05-03-2016 | #9 |
Ветеран Сообщения: 531
|
Профиль | Отправить PM | Цитировать Спасибо за ответ
вот в этом посте http://forum.oszone.net/post-2512648-9.html был заменен код немножко Может из - за этого что - то другое заменить нужно? (я просто забыл, что код заменяли) Я заменил код, как вы сказали. Сейчас у меня вот так: @echo off chcp 1251>nul set number=20 set "folder=i:\папка" set "reg_exp=^start[0-9][0-9][0-9][0-9]\...*" for /f "delims=" %%? in (' dir /a-d/b/o-n "%folder%\start*.*"^| findstr /ir "%reg_exp%" ') do ( set max=%%? goto:# ) :# set count=1%max:~,4% for /f "delims=" %%? in (' dir /a-d/b "%folder%"^| findstr /irv "%reg_exp%" ') do ( set /a count_2+=1 for /f %%* in (' set /a count_2 ') do ( if %%* leq %number% ( set /a count+=1 call ren "%folder%\%%?" "start%%count:~1%%%%~x?" ) else ( exit /b ) ) ) exit /b переименовались несколько файлов на start с разным расширением, а так же на имена имена start1 start2 ... |
Отправлено: 18:23, 05-03-2016 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - Удаление файлов старше 5 дней кроме указанного по имени. | Joni | Скриптовые языки администрирования Windows | 6 | 11-07-2012 11:18 | |
VBS/WSH/JS - Подсчет количества ini файлов в папке | XXXp | Скриптовые языки администрирования Windows | 14 | 10-04-2012 02:06 | |
CMD/BAT - [решено] Счетчик количества файлов | Arsenik77 | Скриптовые языки администрирования Windows | 1 | 28-08-2011 11:13 | |
Удаление файлов из списка указанного в txt | blacks2 | Вебмастеру | 28 | 02-09-2009 20:09 | |
Интерфейс - [решено] Переименование большого количества файлов | 7human7 | Microsoft Windows 2000/XP | 7 | 22-11-2008 09:48 |
|