0

複数の音声ファイルを処理したい。私がやりたいことは.m4a、ディレクトリ内のファイルを取得し、それぞれに対してこれを行うことです:

  • faad(.m4p ファイルをファイルに変換し.waveますが、.m4p ファイルは保持します)
  • oddenc新しい .wave ファイルで、これにより .ogg ファイルが作成されます
  • del.m4aファイルとファイル.wave
  • .m4aディレクトリ内の次へ移動

また、複数のフォルダーに対して(再帰的に)行う必要があります。

私が持っているものは機能しますが、面倒です。最初にフォルダーを通過し、どこにでもファイルを作成.waveします。.oggこれは、削除される前に、突然すべて.m4pの s.wave.oggs が同じフォルダーにあることを意味します。多くのスペースを使用するため、各ファイルを変換して削除する方法が必要だと思います。

これは私がこれまでに持っているものです:

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

しかし、私は次のようなものが欲しい:

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

これが機能することを達成できる方法はありますか?上記のコードはそうではないからです。

4

2 に答える 2

0

複数のコマンドには中かっこが必要で、%~n はパラメータからファイル名 (拡張子なし) を取得します。

::: 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"
)

これは、faad ターニングに依存していますfilename.mp4->filename.wav

更新: 1 つのコマンド ライン引数を指定する必要があります。つまり、再帰的に検索するフォルダーです。つまり、すべてのサブフォルダーで mp4 ファイルがチェックされ、処理されます。

于 2010-09-15T17:19:49.930 に答える
0

Python がインストールされている場合は、dir2oggを使用してプロセスを簡素化することも検討してください。ただし、依存しているバイナリを Windows にインストールするのは少し難しいかもしれません。

于 2010-09-15T17:23:03.060 に答える