|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переименование файлов в каталоге (.avi) |
|
|
CMD/BAT - [решено] Переименование файлов в каталоге (.avi)
|
Пользователь Сообщения: 50 |
Доброго времени суток
Нужно все файлы с расширением .avi привести/переименовать в следующий вид: 2008-03-07_13.avi 2010-06-28_01.avi и т. д. Где 2008-03-07 - <год>.<дата>.<месяц> создания файлов (когда было снято) _01 - нумерация файлов в текущий папке По возможности: добавить рекурсию, но чтобы в каждом вложенном каталоге, нумерация файлов начиналась с _01 а не продолжался общий счет Заранее благодарен |
|
Отправлено: 12:43, 07-05-2015 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать @Echo Off Set "Where=D:\Media" Set "Mask=*.avi" Set /A Count=1000 FOR /F "usebackq delims=" %%f IN (`Dir "%Where%\%Mask%" /b /A:-D /O:D /T:W 2^>nul`) DO Call :Recount "%Where%\%%f" "%Where%" FOR /F "usebackq delims=" %%d IN (`Dir "%Where%\" /b /s /A:D 2^>nul`) DO ( Set /A Count=1000 FOR /F "usebackq delims=" %%f IN (`Dir "%%d\%Mask%" /b /A:-D /O:D /T:W 2^>nul`) DO Call :Recount "%%d\%%f" "%%d" ) GoTo :Eof :Recount Set /A Count=%Count%+1 Set "DC=%~t1" Set "DC=%DC:~6,4%-%DC:~3,2%-%DC:~0,2%" ren %1 "%DC%_%Count:~-2%%~x1" Вы уверены, что в папке не более 99 файлов? В приведенном батнике файлы отсортированы по дате последнего изменения, соответственно ведётся и нумерация. |
------- Последний раз редактировалось megaloman, 07-05-2015 в 19:55. Причина: Исправлена неточность в коде Отправлено: 18:27, 07-05-2015 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 50
|
Профиль | Сайт | Отправить PM | Цитировать megaloman, что-то не так, даже не запускается
|
Отправлено: 18:42, 07-05-2015 | #3 |
Пользователь Сообщения: 50
|
Профиль | Сайт | Отправить PM | Цитировать Цитата:
Цитата megaloman:
Цитата megaloman:
Цитата megaloman:
|
||||
Отправлено: 19:00, 07-05-2015 | #4 |
Пользователь Сообщения: 50
|
Профиль | Сайт | Отправить PM | Цитировать Нечего не происходит, с файлами точно
https://yadi.sk/d/cRkOqGkBgVMDJ (окно запуска) @Echo Off Set "Where=D:\Media" Set "Mask=*.avi" rem FOR /F "usebackq delims=" %%d IN (`Dir "%Where%\" /b /s /A:D`) DO ( FOR /F "usebackq delims=" %%d IN (`Dir /b /s /A:D`) DO ( echo %%d Set /A Count=1000 FOR /F "usebackq delims=" %%f IN (`Dir "%%d\%Mask%" /b /A:-D /O:D /T:W 2^>nul`) DO Call :Recount "%%d\%%f" "%%d" ) GoTo :Eof :Recount Set /A Count=%Count%+1 Set "DC=%~t1" Set "DC=%DC:~6,4%-%DC:~3,2%-%DC:~0,2%" rem ren %1 "%DC%_%Count:~-2%%~x1" echo ren %1 "%DC%_%Count:~-2%%~x1" |
|
Отправлено: 19:16, 07-05-2015 | #5 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать @Echo Off cls Set "Where=D:\Media" Set "Mask=*.avi" Echo ========= Begin bat ============= pause Set /A Count=1000 FOR /F "usebackq delims=" %%f IN (`Dir "%Where%\%Mask%" /b /A:-D /O:D /T:W 2^>nul`) DO Call :Recount "%Where%\%%f" "%Where%" pause FOR /F "usebackq delims=" %%d IN (`Dir "%Where%\" /b /s /A:D 2^>nul`) DO ( Set /A Count=1000 FOR /F "usebackq delims=" %%f IN (`Dir "%%d\%Mask%" /b /A:-D /O:D /T:W 2^>nul`) DO Call :Recount "%%d\%%f" "%%d" pause ) GoTo :Eof :Recount Set /A Count=%Count%+1 Set "DC=%~t1" Set "DC=%DC:~6,4%-%DC:~3,2%-%DC:~0,2%" echo ren %1 "%DC%_%Count:~-2%%~x1" Исправил неточность в первоначальном коде вверху. Код рабочий. Что вверху, что вот этот отладочный (но отладочный реально не переименовывает, так как стоит эхо echo ren %1 "%DC%_%Count:~-2%%~x1" ??????????????? ![]() |
------- Последний раз редактировалось megaloman, 07-05-2015 в 19:56. Отправлено: 19:37, 07-05-2015 | #6 |
Пользователь Сообщения: 50
|
Профиль | Сайт | Отправить PM | Цитировать Цитата megaloman:
Цитата:
Спасибо, вам большое! |
||
Отправлено: 01:35, 08-05-2015 | #7 |
Пользователь Сообщения: 50
|
Профиль | Сайт | Отправить PM | Цитировать Всё гуд,
единственное — обходит папки, в которых, внутри имени присутствует нестандартные символы, пример такой папки: "media ♫" |
Последний раз редактировалось dokxpi@vk, 08-05-2015 в 02:34. Отправлено: 02:06, 08-05-2015 | #8 |
Пользователь Сообщения: 50
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Georgio:
megaloman, вот только сейчас заметил: файлы переименовывает по дате изменения, а нужно по дате съёмки https://yadi.sk/i/HkyGmPIDgVneK |
|
Отправлено: 03:14, 08-05-2015 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата dokxpi@vk:
Цитата dokxpi@vk:
Вкупе с: Цитата dokxpi@vk:
|
|||
Отправлено: 03:20, 08-05-2015 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - [решено] Архивирование файлов в каталоге | Tonny_Bennet | Скриптовые языки администрирования Windows | 53 | 11-01-2015 13:11 | |
CMD/BAT - Создать список файлов в каталоге | PolRusPTZ | Скриптовые языки администрирования Windows | 7 | 03-12-2014 14:44 | |
CMD/BAT - Переименование файлов в каталоге | flower | Скриптовые языки администрирования Windows | 2 | 28-11-2013 15:00 | |
VBS/WSH/JS - Мониторинг файлов в каталоге | ugol_divana | Скриптовые языки администрирования Windows | 1 | 03-08-2013 17:15 | |
Любой язык - [решено] Распределение файлов в каталоге | Тишина | Скриптовые языки администрирования Windows | 2 | 26-04-2013 17:09 |
|