批处理脚本在一次调用中显示多个文件名

时间:2013-06-03 13:35:17

标签: command-line batch-file filenames

我试图创建一个批处理脚本来调用.exe来对同一文件夹中的多个数据文件进行分析。语法应该是:

"D:\Softwares\Analyzer.exe" [DataFile1].dat [DataFile2].dat ... [DataFileN].dat AnalysisFile.pdo"

目前,我尝试使用FOR循环扫描指定文件夹中的每个* .dat文件。 (我不知道该文件夹中有多少数据文件,因此我无法直接在命令行中输入文件名)

例如:

@ECHO OFF
FOR /r %%i in (*.dat) DO (
"D:\Softwares\Analyzer.exe" %%~ni.dat TestAnalysis.pdo
)
PAUSE

但是,分析是在单独的数据文件上执行的,每次检测到新的.dat文件时,都会弹出并打开.exe文件。有没有什么方法可以使用*.dat或任何其他方法来表示 [DataFile1] .dat [DataFile2] .dat ... [DataFileN] .dat 在一行中用空格分隔(不是新行)?

我也尝试使用@tilte,但效果不佳。由于.exe窗口会在检测到新的.dat文件时保持弹出,我必须关闭它们才能继续下一个.dat文件。   

一般来说,我想在文件夹中进行自动扫描,获取数据文件的名称,并编写一个命令行来调用这些.dat文件。

任何想法/帮助表示赞赏!!!

1 个答案:

答案 0 :(得分:2)

试试这个,如果输出正常,请删除单词echo

@echo off &setlocal enabledelayedexpansion
set "line="
for %%i in (*.dat) do set "line=!line! "%%i""
echo "D:\Softwares\Analyzer.exe" %line% TestAnalysis.pdo

该代码不适用于文件名中带有exclams !的* dat文件。如果需要,可以修复此问题。