![]() |
Помощь с написанием Bat. Переименование файлов в папке с условием.
Приветствую вас, гуру сообщество)
Прошу помощи в написании пакетного файла, если таковой возможно написать. условия задачи следующие: есть две сетевые папки "А" и "B" в папку "A" кладут n-ое кол-во файлов с расширением .mp3 в папке "B" лежит n-ое кол-во файлов с расширением .mp4 задача: по запуску пакетного файла смотреть на имена .mp3 файлов в папке "A" и переименовать файлы .mp4 в папке "B" в соответствии с именами в "A", не трогая при этом расширение. Пример: положили в папку "А" - 3 файла с именами 1.mp3, 2.mp3, 3.mp3. в папке "B" лежат файлы 10.mp4, 12.mp4, 16.mp4, 20.mp4, 25.mp4 Запускаем пакетный файл и получаем в папке "B" файлы с именами 1.mp4, 2.mp4, 3.mp4, 20.mp4, 25.mp4 Содержимое файлов mp4. абсолютно одинаковое, поэтому не важно в какой последовательности они будут переименованы. В папку "A" могут положить больше файлов чем есть в папке "B", в таком случае переименование идет пока не закончатся файлы в папке "B". |
Цитата:
|
А что вы имеете ввиду под соответствием?
какой файл mp3 в "А" соответствует файлу mp4 в "B"? это не важно, как я написал, все файлы mp4 одинаковые. Главное, чтобы в "B" по итогу были файлы с такими же именами, как и в "A", кроме расширения. |
Тогда зачем их там делать несколько штук? Или больше, чем есть mp3-файлов? Пусть один и будет.
На WSH: Скрытый текст
Код:
Option Explicit Может, лучше опишете саму задачу? |
Цитата:
Есть система визуализации аудиофайлов. Играет некий плейлист из mp3 файлов, программа при запуске файла смотрит на его имя и сканирует другую папку на наличие файла mp4 с таким же именем, если находит картинка запускается на экран, не находит не запускается. Т.к. некоторая часть mp4 файлов одинаковая, задача облегчить жизнь людям, которые эти файлы переименовывают руками. Цитата:
|
Цитата:
dedylka, вопрос по: Цитата:
|
Код:
@echo off Код:
if not exist "%~n1_%z%%~x1" ren "%~1" "%~n1_%z%%~x1" Файл 156828 |
Вложений: 2
Цитата:
Цитата:
он переименовывает первый файл, а дальше видимо копирует его столько раз сколько файлов в папке A и называет нужными именами, при этом остальные файлы в папке B, которые не были переименованы просто оставляет. Таким образом папка B очень скоро будет завалена файлами( |
помогите, пожалуйста, с батником для переименования
Суть: нужно перекодировать dts в ас3 из dts вытаскиваем wav программой eac3to, она выдает файлы вида 2eng.C.wav 2eng.L.wav 2eng.LFE.wav 2eng.R.wav 2eng.SL.wav 2eng.SR.wav а программа кодировщик хочет 2eng C.wav 2eng L.wav 2eng LFE.wav 2eng R.wav 2eng Ls.wav 2eng Rs.wav т.е. после 2eng вместо точки поставить пробел и два файла переименовать: 2eng.SL.wav -> 2eng Ls.wav 2eng.SR.wav -> 2eng Rs.wav имена вавок 2eng могут быть произвольными (с точками и пробелами), но концовка всегда .C .L .R .SL .SR F1! |
dedylka, Попробуйте. Пути пропишИте свои без \ на конце
Код:
@Echo Off |
R.i.m.s.k.y.,
Код:
@Echo Off |
megaloman,
1 можно пояснить как оно работает, set еще понятно, но в циклах In@%%N%%=%%~f и подобное это просто brainfuck какой-то 2 а можно натравить на папку, т.е. Set "In=Z:\Soft_In" передать через контекстное меню имя папки (т.е. eac3to демуксит все дорожки в папку, я этот батник кладу в sendto, потом на папке с вавками делаю ПКМ-отправить-этотбатник). Просто при массовой обработке и перекодировании (особенно сериалов) на каждый эпизод своя папка, эпизодов 12, сезонов 3-5 и получается 36-60 раз надо править Set "In=Z:\Soft_In" |
Натравить на папку не умею, а папку на батник - пожалуйста
Код:
@Echo Off Как это работает
В цикл помещен список для замены ".C.wav" ".L.wav" ".R.wav" ".SL.wav" ".SR.wav" В цикле элементы списка присваиваются переменным In@10001, In@10002, In@10003 ... Код:
Set /A N=1000 В NN сохраняем максимальный номер, чтобы потом в цикле перебрать все переменные: что заменяем - на что заменяем при вызове функции переименования |
R.i.m.s.k.y.,
Цитата:
Вот вариант, тянИте папку СЕРИАЛ на батник, и не надо 60 раз напрягать усталость.
Обработаются все папки Код:
@Echo Off |
Цитата:
работает, спасибо! |
Цитата:
|
Цитата:
\сериал\сезон\эпизод\номер дорожки\*.wav Цитата:
батник кинул в sendto папку, по папке ПКМ - отправить на этот батник - отработало! только .LFE не переименовалось дописал LFE Код:
Set InE=".LFE.wav" ".C.wav" ".L.wav" ".R.wav" ".SL.wav" ".SR.wav" можно я этот скрипт запощу на рутракер в тему по обработке звука? |
Цитата:
|
megaloman, подправьте, пожалуйста, батник
Код:
Set InE=".LFE.wav" ".C.wav" ".L.wav" ".R.wav" ".SL.wav" ".SR.wav" |
Цитата:
Если давать ссылку на решение то оно должно быть полным Извините за мою невнимательность и спасибо Вам за решение! |
Цитата:
Есть ли возможность сделать список исключений? Например, в исходной папке лежит файл "privet.mp3", также в папке назначения лежит файл "privet.mp4", нужно, чтобы скрипт никак их не обрабатывал, как будто их нет. Спасибо заранее. |
dedylka,
Попробуйте. Если старый вариант был рабочий, то вроде бы должно получиться.
Код:
@Echo Off |
Время: 23:18. |
Время: 23:18.
© OSzone.net 2001-