|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Пакетное переименование файлов (синхронизирование имён одного расширения с другим) |
|
|
CMD/BAT - [решено] Пакетное переименование файлов (синхронизирование имён одного расширения с другим)
|
Пользователь Сообщения: 65 |
Профиль | Отправить PM | Цитировать
Имеется произвольный список файлов *.mkv
А также список допустим *.ac3 абв 1.mkv абц2.mkv ... test 1.ac3 test 34.ac3 ... Требуется 1-ый найденный ac3 переименовать, взяв имя из 1-ого найденного mkv, порядок сортировки обычный, соотвественно, должно стать: test 1.ac3 ->абв 1.ac3 test 34.ac3->абц2.ac3 Дальше извлечения из mkv-файлов списка имен без расширения в txt-файл уйти мне не удалось: Цикл, который пробежится по всем строчкам nameslist.txt я сделать могу Цикл, который переименует каждый файл *.ac3 в какое-то конкретное имя, например, со счетчиком я тоже могу. А не могу я совместить эти 2 цикла, чтобы для 1ого файла ac3 сопоставить 1ую строчку из nameslist.txt, для 2ого - 2ую строчку и т.д. Вот тут (http://forum.oszone.net/thread-184481.html) похожая задача решалась, но более простая, т.к. исходное имя переименовываемого файла там конкретное, а не призвольное-полностью неизвестное как в моём случае. |
|
Отправлено: 21:50, 03-03-2011 |
Ветеран Сообщения: 1001
|
Профиль | Отправить PM | Цитировать Количество файлов *.mkv и *.ac3 одинаковое?
Они все лежат в одной папке? |
Отправлено: 08:43, 04-03-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать Цитата Ivan Bardeen:
|
|
Отправлено: 08:50, 04-03-2011 | #3 |
Ветеран Сообщения: 1001
|
Профиль | Отправить PM | Цитировать Цитата 19w85:
|
|
Отправлено: 09:35, 04-03-2011 | #4 |
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать Цитата Ivan Bardeen:
1-ой вариант (с условными именами): a.mkv, b.mkv, c.mkv 1.ac3, 2.ac3 3-его ac3-файла нету, переименовывать нечего - как тут по другому можно поступить, кроме пропуска? 2-ой вариант: a.mkv, b.mkv 1.ac3, 2.ac3, 3.ac3 Имя для переименования 3его ac3-файла взять неоткуда, т.к. нет mkv - также кроме как пропустить тут делать ведь нечего... |
||
Отправлено: 09:43, 04-03-2011 | #5 |
Ветеран Сообщения: 1001
|
Профиль | Отправить PM | Цитировать Цитата 19w85:
|
|
Отправлено: 09:47, 04-03-2011 | #6 |
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать Цитата Ivan Bardeen:
|
|
Отправлено: 09:48, 04-03-2011 | #7 |
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать Вроде бы поставленная задача средней сложности...неужели никто ничего не подскажет?
|
Отправлено: 07:55, 09-03-2011 | #8 |
Старожил Сообщения: 175
|
Профиль | Отправить PM | Цитировать Видно после праздника голова не работает. Получилась такая ересь.
Но самое смешное - у меня работает. Если у Вас не будет - не удивлюсь. @echo off setlocal enabledelayedexpansion set "SFileName=z:\sandbox\003\*.ac3" set "DFileName=z:\sandbox\003\*.mkv" set n=0 for /f "delims=" %%a in ('dir /a-d/b/oen "%SFileName%"') do ( set /a n+=1 set "arr=!arr!^ren "%%a" "^>!n!"/" ) set n2=0 for /f "delims=" %%i in ('dir /a-d/b/oen "%DFileName%"') do ( set /a n2+=1 if !n2! LEQ n call set arr=%%arr:^>!n2!=%%~ni.ac3%% ) set arr=%arr:/=^&% 2>nul (%arr:~,-1%) |
Последний раз редактировалось SendMessage, 09-03-2011 в 10:46. Отправлено: 10:40, 09-03-2011 | #9 |
Пользователь Сообщения: 65
|
Профиль | Отправить PM | Цитировать SendMessage,
Отлично, спасибо! У меня вроде тоже работает (естественно, в начало командника добавил cd /D "%~dp0" и удалил из кода z:\sandbox\003\ чтобы полностью соответствовало поставленной задаче) А не могли бы рассказать принцип действия? И особенно прокомментировать, что именно происходит в выделенных частях в этих строках: |
Отправлено: 11:04, 09-03-2011 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Доступ - [решено] Подключение сетевого диска под другим именем | khs | Microsoft Windows 2000/XP | 6 | 03-10-2019 12:53 | |
CMD/BAT - [решено] Пакетное переименование файлов | ArsenBespalov | Скриптовые языки администрирования Windows | 9 | 11-08-2016 03:56 | |
[решено] Пакетное переименование ярлыков | SimSim | Хочу все знать | 9 | 24-10-2012 10:44 | |
CMD/BAT - [решено] Пакетное переименование с использованием алфавитного счётчика | kotik147 | Скриптовые языки администрирования Windows | 6 | 13-05-2010 00:03 | |
Возвращение ПК в домен под другим именем | El Scorpio | Microsoft Windows NT/2000/2003 | 2 | 06-08-2008 09:45 |
|