【问题标题】:How can a batch file be run on the entire contents of a directory?批处理文件如何在目录的全部内容上运行?
【发布时间】:2013-11-02 12:16:16
【问题描述】:

我在批处理文件中使用命令行程序来转换不同的音频格式。但是,我想自动化该过程以读取文件夹的所有文件名,然后在所有文件夹的文件上运行可执行文件。

这是可执行文件 (test.exe) 的格式。 “-o”是从源文件“infile.dsp”输出新文件“output.wav”的参数。

start test -o outfile.wav infile.dsp

'Outfile.wav' 应该基于文件夹中的源文件名。而不是 'infile.dsp' 和 'outfile.wav',我应该在每个 .dsp 的源文件夹中有 'infile.dsp' 和 'infile.wav'文件。

【问题讨论】:

    标签: batch-file audio directory command-line-arguments


    【解决方案1】:

    这有一些变化:输入文件的路径和exe文件的路径。

    @echo off
    pushd "c:\folder\with audio files\"
       for /f "delims=" %%a in ('dir *.* /b /a-d ') do (
          "d:\util\test.exe" -o "%%~na.wav"  "%%a"
       )
    popd
    

    【讨论】:

    • 这个似乎有效。第 4 行的 "%%a" 需要删除它的引号,但之后,它工作正常!
    【解决方案2】:

    试试这个:

    for /f "delims==" %%i in ('dir "dirTheyAreIn" /b') do (start /wait "" "test -o %%~ni.wav %%i")
    

    在命令行中使用 % 而不是 %%。 ;)

    【讨论】:

    • 你能解释一下吗?我是否需要在“delims==”中添加一些内容或更改“dirTheyAreIn”的名称或其他内容?
    • 把dirtheyarein改成infile所在的目录,在outfile前面加上同样的路径
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 2017-11-17
    • 2011-07-20
    • 1970-01-01
    相关资源
    最近更新 更多