Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何在目录的整个内容上运行批处理文件?_Batch File_Audio_Directory_Command Line Arguments - Fatal编程技术网

Batch file 如何在目录的整个内容上运行批处理文件?

Batch file 如何在目录的整个内容上运行批处理文件?,batch-file,audio,directory,command-line-arguments,Batch File,Audio,Directory,Command Line Arguments,我在批处理文件中使用命令行程序来转换不同的音频格式。但是,我想自动读取文件夹的所有文件名,然后在文件夹的所有文件上运行可执行文件 这是可执行文件(test.exe)的格式-o'是从源文件infle.dsp输出新文件output.wav的参数 start test -o outfile.wav infile.dsp “Outfile.wav”应基于文件夹中的源文件名。我应该在每个.dsp文件的源文件夹中放置'infle.dsp'和'infle.wav',而不是'infle.dsp'和'infle

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

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

start test -o outfile.wav infile.dsp
“Outfile.wav”应基于文件夹中的源文件名。我应该在每个.dsp文件的源文件夹中放置'infle.dsp'和'infle.wav',而不是'infle.dsp'和'infle.wav'

试试以下方法:

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

在命令行中使用%而不是%%<代码>;)

这有一些更改:输入文件的路径和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

你能解释一下吗?我是否需要在“delims==”中添加一些内容,或者更改“dirTheyAreIn”的名称或其他内容?将dirTheyAreIn更改为内嵌所在的目录,并在输出口前面添加相同的路径。这一路径似乎有效。第4行的“%%a”需要去掉引号,但在那之后,它工作正常!