【问题标题】:Batch script to show multiple filenames in one call在一次调用中显示多个文件名的批处理脚本
【发布时间】:2013-06-03 13:35:17
【问题描述】:

我正在尝试创建一个批处理脚本来调用 .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,但效果不佳。由于每当检测到新的 .dat 文件时 .exe 窗口都会弹出,我必须关闭每个窗口才能继续下一个 .dat 文件。

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

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

【问题讨论】:

    标签: command-line batch-file filenames


    【解决方案1】:

    试试这个,如果输出正常,去掉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 文件。如果需要,这可能会被修复。

    【讨论】:

      猜你喜欢
      • 2013-01-11
      • 2011-11-30
      • 1970-01-01
      • 2014-12-03
      • 1970-01-01
      • 2020-05-21
      • 1970-01-01
      • 1970-01-01
      • 2014-06-16
      相关资源
      最近更新 更多