Пакет Как выполнить команду для каждого файла .m4p во всех Sub dir - PullRequest
1 голос
/ 13 сентября 2010

В основном я хочу запустить это в любой папке Sub

for %%i in (*.m4a) do faad "%%i"
for %%i in (*.wav) do oggenc "%%i"
for %%i in (*.m4a) do del "%%i"
for %%i in (*.wav) do del "%%i"

, она прекрасно работает, но мне нужно вручную изменить каталог и запустить, например.

cd res  
cd music
for %%i in (*.m4a) do faad "%%i"
for %%i in (*.wav) do oggenc "%%i"
for %%i in (*.m4a) do del "%%i"
for %%i in (*.wav) do del "%%i"
cd..
cd Sounds
for %%i in (*.m4a) do faad "%%i"
for %%i in (*.wav) do oggenc "%%i"
for %%i in (*.m4a) do del "%%i"
for %%i in (*.wav) do del "%%i"
cd..

и список можно продолжить.Проблема в том, что у меня есть сотни вложенных папок, поэтому потребуется навсегда, если бы я мог автоматически запускать свой маленький скрипт во всех подкаталогах, начиная с определенного dir
, например

for /f "usebackq delims=|" %%f in (`dir /b /s *.m4p`) do faad.exe "%%f"

Любая помощьбудет оценен

Ответы [ 2 ]

1 голос
/ 13 сентября 2010

Я понял это для себя. Все, что мне нужно сделать, это указать каталог с файлами m4a, а код сделает все остальное. Он будет выглядеть, хотя каждая подпапка также

cd Музыка

для / r %% i in (* .m4a) сделать faad "%% i"

для / r %% i in (* .wav) do oggenc "%% i"

для / r %% i in (* .m4a) do del "%% i"

для / r %% i in (* .wav) do del "%% i"

Для вашего сведения. Этот scpipt Ищет файлы m4a, использует faad для преобразования в файл wave. Затем файлы wave преобразуются в формат Ogg с помощью oggenc. Файлы m4a удаляются. Файлы wave удаляются

0 голосов
/ 01 января 2011

Безопаснее сделать следующее, чтобы не потерять исходные файлы .m4a в случае сбоя процесса преобразования:

for /r %%i in (*.m4a) do call :convert %%i
goto :end

:convert
  set M4A=%1
  set WAV=%M4A:.m4a=.wav%
  set OGG=%M4A:.m4a=.ogg%
  faad %M4A%
  if not exist %WAV% (echo %M4A% not converted.) else (oggenc %WAV%      )
  if not exist %OGG% (echo %WAV% not converted.) else (del    %M4A% %WAV%) 
goto :EOF

:end
...