【问题标题】:Batch How do i execute a command on every .m4p file in all Sub dir批处理如何对所有子目录中的每个 .m4p 文件执行命令
【发布时间】:2010-09-13 06:09:45
【问题描述】:

基本上我想在永远的子文件夹中运行它

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

列表还在继续。问题是我有数百个子文件夹,所以它需要永远 有没有一种方法可以在所有以定义的目录开头的子目录中自动运行我的小脚本
比如

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

任何帮助将不胜感激

【问题讨论】:

    标签: windows batch-file dos


    【解决方案1】:

    我自己想出来的 我所要做的就是用 m4a 文件指向目录,其余的由代码完成, 它也会查看每个子文件夹

    cd 音乐

    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"

    供您参考。此脚本查找 m4a 文件,使用 faad 转换为波形文件 然后使用 oggenc 将波形文件转换为 Ogg 格式 m4a 文件被删除 波形文件被删除

    【讨论】:

      【解决方案2】:

      执行以下操作更安全,以免在转换过程失败时丢失源 .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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-23
        • 1970-01-01
        • 2011-12-15
        • 2010-11-30
        • 2012-05-18
        相关资源
        最近更新 更多