2010-09-13 13 views
1

Fondamentalement je veux exécuter ce sous-dossier dans jamaisLot Comment puis-je exécuter une commande sur chaque fichier .m4p dans tous les sous dir

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" 

il fonctionne très bien, mais je dois changer manuellement dir et re exécuter par exemple.

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.. 

et la liste continue. Le problème est que j'ai des centaines de sous-dossiers, il prendrait une éternité est-il un moyen que je peux exécuter mon petit script automatiquement dans tous les sous-répertoire commence par une définition dir
tels que

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

Toute aide serait aprécié

Répondre

1

j'ai tout compris pour moi-même Tout ce que je dois faire est le point le répertoire avec les fichiers m4a et le code ne le reste, il regardera si tous les sous-dossier aussi

cd Musique

pour/r %% i dans (* .m4a) ne faad "%% i"

pour/r %% i dans (* .wav) ne oggenc "%% i"

pour/r %% i dans (* .m4a) faire del "%% i"

pour/r %% i dans (* .wav) ne del "%% i"

pour vos informations. Cette scpipt Recherche les fichiers m4a, utilise faad pour les convertir en fichier wave Les fichiers wave sont ensuite convertis au format Ogg en utilisant oggenc Les fichiers m4a sont supprimés Les fichiers wave sont supprimés

0

Il est plus sûr de faire ce qui suit afin que vous ne perdrez pas vos fichiers .m4a source si le processus de conversion échoue:

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