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

Command line 在一次调用中显示多个文件名的批处理脚本,command-line,batch-file,filenames,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 (*.da

我正在尝试创建一个批处理脚本,以调用.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在一行中,用空格分隔(不是新行)

我还尝试过使用
@tilt
,但效果并不理想。因为每当检测到一个新的.dat文件时,.exe窗口就会弹出,我必须关闭每个窗口才能继续下一个.dat文件。

通常,我想在文件夹中进行自动扫描,获取数据文件的名称,然后编写一个命令行在一行中调用这些.dat文件


任何想法/帮助都将受到赞赏

尝试此操作,如果输出正常,请删除单词
echo

@echo off &setlocal enabledelayedexpansion
set "line="
for %%i in (*.dat) do set "line=!line! "%%i""
echo "D:\Softwares\Analyzer.exe" %line% TestAnalysis.pdo
该代码不适用于带有惊叹号的*dat文件
。如果需要,这可能是固定的