我试图创建一个批处理脚本来调用.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文件。
任何想法/帮助表示赞赏!!!
答案 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文件。如果需要,可以修复此问题。