0

我想处理多个音频文件。我想要做的是.m4a在目录中获取文件,并为每个文件执行以下操作:

  • faad(它将 .m4p 文件转换为.wave文件,但保留 .m4p 文件)
  • oddenc在新的 .wave 文件上,这将创建一个 .ogg 文件
  • del.m4a文件和文件.wave
  • 移动到.m4a目录中的下一个

我还需要它来处理多个文件夹(递归)。

我有什么作品,但它很乱。如果首先遍历文件夹并在任何地方创建.wave.ogg文件。这意味着在它们被删除之前,我突然将所有.m4ps.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"
)

这依赖于时尚转向filename.mp4->filename.wav

更新:您需要提供 1 个命令行参数 - 递归搜索的文件夹,也就是说,将检查所有子文件夹是否有 mp4 文件并进行处理。

于 2010-09-15T17:19:49.930 回答
0

如果你安装了 Python,你也可以考虑使用dir2ogg来简化这个过程。不过,在 Windows 中安装它所依赖的二进制文件可能有点困难。

于 2010-09-15T17:23:03.060 回答