Hi all,
подскажите пожалуйста как сделать:
— имеется немалое множество mp3-файлов, имена которых построены след. образом
xx-исполнитель-название песни.mp3.
Исполнитель, как вы уже наверняка догадались, один и тот же, а посему я хочу удалить его.
Windows XP.
Как такое осуществить, а ?
Здравствуйте, std_out, Вы писали:
_>Hi all, _>подскажите пожалуйста как сделать: _>- имеется немалое множество mp3-файлов, имена которых построены след. образом _>xx-исполнитель-название песни.mp3. _>Исполнитель, как вы уже наверняка догадались, один и тот же, а посему я хочу удалить его. _>Windows XP. _>Как такое осуществить, а ?
> _>- имеется немалое множество mp3-файлов, имена которых построены след. образом > _>xx-исполнитель-название песни.mp3. > _>Исполнитель, как вы уже наверняка догадались, один и тот же, а посему я хочу удалить его. > _>Windows XP. > _>Как такое осуществить, а ? > > del *-исполнитель-*.mp3
хм ...
За такие советы надо не то, что минусы ставить ...
Здравствуйте, std_out, Вы писали:
>> _>- имеется немалое множество mp3-файлов, имена которых построены след. образом >> _>xx-исполнитель-название песни.mp3. >> _>Исполнитель, как вы уже наверняка догадались, один и тот же, а посему я хочу удалить его. >> _>Windows XP. >> _>Как такое осуществить, а ? >> >> del *-исполнитель-*.mp3 _>хм ... _>За такие советы надо не то, что минусы ставить ...
Вы бы пояснили, с чем не согласны. Хотели удалить файлы? Это строка делает что-то не то? Или задача поставлена не так?
> Вы бы пояснили, с чем не согласны. Хотели удалить файлы? Это строка делает что-то не то? >Или задача поставлена не так?
Читайте subj топика.
На всякий случай поясняю — имеется ввиду удалить исполнителя из имен файлов и оставить xx_название.mp3
Здравствуйте, std_out, Вы писали:
>> Вы бы пояснили, с чем не согласны. Хотели удалить файлы? Это строка делает что-то не то? >>Или задача поставлена не так? _>Читайте subj топика. _>На всякий случай поясняю — имеется ввиду удалить исполнителя из имен файлов и оставить xx_название.mp3
Вы наверно хотели написать "удалить имя исполнителя"?
Лучше всего использовать спец тул для этого. Отлично подходит Total Comander например. Есть куча тулов именно для mp3
Можно и батник написать, но это уже не одна строчка.
> Лучше всего использовать спец тул для этого. Отлично подходит Total Comander например. Есть >куча тулов именно для mp3
С тотальным коммандером не справился, ибо регулярными выражениями не владею, а что за спецтулы такие ?
Как их найти-то ?
Здравствуйте, std_out, Вы писали:
_>Как такое осуществить, а ?
Как-то так. Предпологая, что подстрока "исполнитель" фиксированной длинны.
runme.bat
@echo off
for %%i in (*.mp3) do call :DoRename %%i
goto :eof
:DoRename
echo %1
set d=%1
set d=%d:~0,3%%d:~7%
echo %d%
rem ren %1 %d%
goto :eof
Поместить runme.bat в папку с файлами. For перебирает по заданной маске файлы, вызывая для каждого подпрограмму ниже. Ключ в строчке "set d=%d:~0,3%%d:~7%", здесь "%d:~0,3%" позволяет получить три символа с позиции 0 (т.е. первые три символа имени файла), а "%d:~7%" -- остаток с позиции 7 до конца. Осталось только выбрать правильные позиции и размеры, чтобы вырезать твоего исполнителя.
Строчка переименования закомментирована, чтобы вначале убедиться, что всё будет верно с именами, и ничего не перепутано.
Здравствуйте, std_out, Вы писали:
>> Лучше всего использовать спец тул для этого. Отлично подходит Total Comander например. Есть >>куча тулов именно для mp3 _>С тотальным коммандером не справился, ибо регулярными выражениями не владею, а что за спецтулы такие ?
там не обяз рег выражения Например так задаешь:
[N1-2;20-]
что означает (если не ошибаюсь, первые два символа и начиная с 20го
Здравствуйте, akasoft, Вы писали:
A>Здравствуйте, std_out, Вы писали:
_>>Как такое осуществить, а ?
A>Как-то так. Предпологая, что подстрока "исполнитель" фиксированной длинны.
отлично, маленькое замечание.
Здесь есть еще два предположения:
1. Все файлы в оглавлении надо переименовать, а не только -исполнитель-
2. от начала имени, до -исполнителя- тоже должна быть фиксированная длина.
> Поместить runme.bat в папку с файлами. For перебирает по заданной маске файлы, вызывая для >каждого подпрограмму ниже. Ключ в строчке "set d=%d:~0,3%%d:~7%", здесь "%d:~0,3%" >позволяет получить три символа с позиции 0 (т.е. первые три символа имени файла), а "% >d:~7%" -- остаток с позиции 7 до конца. Осталось только выбрать правильные позиции и >размеры, чтобы вырезать твоего исполнителя.
В результате исполнения вышеприведенного сценария получил столбец чисел, соответствующих первым двум символам в имени файлов:
01
02
...
xx
Дальше в имени пробел, на котором скрипт, видимо, и спотыкается.
А что делать с последней кавычкой, остающейся после set d=%d:~1,5%%d:~26% ?
01 — тыры-пыры-тыры-пыры.mp3"
02 — трали-вали-трали-вали.mp3"
...
xx — ули-гули-ули-гули.mp3"
Здравствуйте, std_out, Вы писали:
_>А что делать с последней кавычкой, остающейся после set d=%d:~1,5%%d:~26% ?
Кавычки тебе нужны. В Windows имена с пробелами д.б. забраны в двойные кавычки. Так что, начинай вырезать с нулевой поз., а не с первой. Для ren как раз передашь оба имени в кавычках.
> Кавычки тебе нужны. В Windows имена с пробелами д.б. забраны в двойные кавычки. Так что, >начинай вырезать с нулевой поз., а не с первой. Для ren как раз передашь оба имени в кавычках.
Вот теперь работает