2010-09-15 30 views
0

Je souhaite traiter plusieurs fichiers audio. Ce que je veux faire est de prendre .m4a fichiers dans le répertoire et pour chacun d'un faire:Conversion et suppression de fichiers audio dans plusieurs répertoires en utilisant batch for loop

  • faad (il convertit le fichier .m4p dans un fichier .wave mais conserve le fichier .m4p)
  • oddenc sur la nouveau fichier .wave, cela crée un fichier .ogg
  • del et le fichier .wave.
  • Passez à la prochaine .m4a dans le répertoire

Je dois aussi à le faire à plusieurs dossiers (récursive).

Ce que j'ai fonctionne, mais c'est salissant. Si le premier passe par les dossiers et crée des fichiers .wave et .ogg partout. Cela signifie que j'ai soudainement tous les .m4p s .wave s et .ogg s dans les mêmes dossiers, avant qu'ils ne soient supprimés. Il utilise beaucoup d'espace et je pense qu'il doit y avoir un moyen de convertir chaque fichier et de le supprimer au fur et à mesure.

C'est ce que j'ai jusqu'à présent:

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

Mais je veux quelque chose comme:

>for /r %%i in (*.mpa) do faad "%%i" (*wav) do oggenc "%%i" (*m4a) do del "%%i" (*wav) do del "%%i" 

Est-il possible que je pouvais réaliser que cela fonctionne? Parce que le code ci-dessus ne fonctionne pas.

Répondre

0

Vous serez accolades pour vouloir plusieurs commandes et% ~ n pour obtenir le nom du fichier (sans extension) du paramètre:

::: Please define folder to search in (recursively) 
if "%~1"=="" findstr "^:::" "%~f0"&GOTO:EOF 

for /f %%i in ('dir %1\*.mp4 /b/s') do (
    faad "%%i" 
    oggenc "%%~di%%~pi%%~ni.wav" 
    del "%%~ni.m4a" 
    del "%%~di%%~pi%%~ni.wav" 
) 

Cela repose sur faad tournant filename.mp4 ->filename.wav

Mise à jour: Vous devez fournir un argument de ligne de commande - le dossier à rechercher récursivement, c'est-à-dire que tous les sous-dossiers seront vérifiés pour les fichiers mp4 et traités.

+0

Merci Rudi, j'ai essayé mais ça n'a pas marché. Je ne sais pas pourquoi – kam

+0

Je dois noter que j'utilise Windows7 – kam

+0

Essayez de préfixer la ligne 2 + 3 avec echo ('echo faad" %% i "') et de commenter la ligne 4 + 5 (les suppressions) et voir ce qui est imprimé à l'écran. Sans 'faad' et' oggenc' je ne peux pas tester ce qui ne fonctionne pas. – Rudu

0

Vous pouvez également envisager d'utiliser dir2ogg pour simplifier le processus si vous avez installé Python. Cependant, il peut être un peu difficile d'obtenir les binaires dont il dépend.

+0

mais regardé dans le script doit être exécuté sur les ordinateurs qui pourraient ne pas avoir python – kam

+0

Je note que im en utilisant Windows7 – kam

+0

Aussi, je ne sais pas comment compiler le code en python – kam