|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Последовательное, циклическое переименование файлов в каталоге по кругу в cmd. |
|
CMD/BAT - Последовательное, циклическое переименование файлов в каталоге по кругу в cmd.
|
Новый участник Сообщения: 25 |
Здравствуйте!
Почти не разбираюсь в скриптах, поэтому прошу помощи. В каталоге есть файлы c числовыми именами: 01.jpg, 02.jpg и т.д. Нужно переименовывать файлы так, что бы после каждого срабатывания cmd последний становился первым по порядку цифр, первый вторым, второй - третьим и т.д.. Первоначальное именование по порядку возможно, если будет необходимо для скрипта. Файлов может быть от 01 до 99. Спасибо. |
|
Отправлено: 14:40, 07-04-2016 |
Ветеран Сообщения: 1758
|
Vasylich, Каждый запуск зеркально переименовывает файлы
|
Отправлено: 19:27, 07-04-2016 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 25
|
Профиль | Отправить PM | Цитировать Цитата Foreigner:
|
|
Отправлено: 19:49, 07-04-2016 | #12 |
Новый участник Сообщения: 25
|
Профиль | Отправить PM | Цитировать А нельзя реализовать простую логику?
1. Находим 01 файл, сохраняем его копию. 2. Переименовываем в цикле пока не достигнет конца шаблон ??.jpg: 02->01, 03->02, 04->03 ... с шагом 1 до последний->предпоследний . Конец цикла. 3. Переименовываем сохранённый в шаге 1 в последний. Всё. |
Отправлено: 20:08, 07-04-2016 | #13 |
Ветеран Сообщения: 1758
|
|
Отправлено: 20:46, 07-04-2016 | #14 |
Новый участник Сообщения: 25
|
Профиль | Отправить PM | Цитировать Цитата Foreigner:
По всей видимости в ФС файлы хранятся как попало и первый найденный не обязательно 01 и чтобы узнать, какой первый существующий в отсортированном списке нужно получить весь список и отсортировать его? |
|
Отправлено: 21:02, 07-04-2016 | #15 |
Ветеран Сообщения: 1758
|
Цитата Vasylich:
на NTFS и на FAT32 |
|
Отправлено: 21:17, 07-04-2016 | #16 |
Новый участник Сообщения: 25
|
Профиль | Отправить PM | Цитировать Цитата Foreigner:
|
|
Отправлено: 21:27, 07-04-2016 | #17 |
Ветеран Сообщения: 1758
|
Тогда dir в данном случае не принципиален.
|
Отправлено: 21:57, 07-04-2016 | #18 |
Новый участник Сообщения: 25
|
Профиль | Отправить PM | Цитировать Цитата Foreigner:
|
|
Отправлено: 22:21, 07-04-2016 | #19 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать @Echo off Set "Where=Z:\kuku" Set "Mask=*.jpg" SetLocal EnableExtensions EnableDelayedExpansion Set "Last=''" for /f "usebackq delims=" %%i in (`dir "%Where%\%Mask%" /B /O:-N /A:-D 2^>nul`) Do ( Set "Name=%%i" Set /A Num=1!Name:~0,2!+1 Set "Name=!Name:~2,9999!" Ren "%Where%\%%i" "!Num:~1,2!!Name!" If !Last!=='' Set Last=Ren "%Where%\!Num:~1,2!!Name!" "01!Name!" ) !Last! Пояснение
Имена файлов могут начинаться от 01 до 99 максимум. Dir c ключом /O:-N сортирует имена файлов по имени в обратном порядке от 99 до 01. Тупо переименовываем все файлы на имя с префиксом на 1 больше. При этом 99, если он был, переименуется в 00, что за пределами диапазона имён. Для самого первого в списке переименованного файла (со старым максимальным номером) запоминаем в переменную команду на переименование его в 01. По завершении цикла запускаем эту команду.
Маску, естественно, можно указать и ??.jpg Хватает одного цикла и не делается никаких копий. |
------- Последний раз редактировалось megaloman, 07-04-2016 в 23:44. Отправлено: 23:01, 07-04-2016 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Переименование файлов в каталоге (.avi) | dokxpi@vk | Скриптовые языки администрирования Windows | 15 | 21-05-2015 00:44 | |
CMD/BAT - Проверка файлов в сетевом каталоге, и создание списка из тех которые по размеру < N | wonted | Скриптовые языки администрирования Windows | 21 | 17-03-2014 13:40 | |
CMD/BAT - Переименование файлов по маске | tobornforlife@vk | Скриптовые языки администрирования Windows | 5 | 24-02-2014 17:07 | |
CMD/BAT - [решено] узнать количество файлов в каталоге через CMD | toro | Скриптовые языки администрирования Windows | 5 | 04-12-2013 06:31 | |
CMD/BAT - Переименование файлов в каталоге | flower | Скриптовые языки администрирования Windows | 2 | 28-11-2013 15:00 |
|