有序调用BAT文件

时间:2015-03-27 11:27:39

标签: batch-file batch-processing

Windows 7 x64。

目录包含BAT - msbuild生成的文件。例如:

run-tests-in-autocad-2009-Gallio.bat
run-tests-in-autocad-2010-Gallio.bat
run-tests-in-autocad-2011-NUnit.bat
run-tests-in-autocad-2012-NUnit.bat
run-tests-in-autocad-2013-NUnit.bat
run-tests-in-autocad-2014-NUnit.bat
run-tests-in-autocad-2015-NUnit.bat

现在我需要创建BAT - 文件(run-all-tests.bat),它将调用每个文件。警告:通话顺序很重要!每个BAT - 文件的名称都有年份值。呼叫必须按该值排序。我想写一个循环而不是硬指向每个BAT - 文件名。严格的排序对我来说很难。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果文件存储在NTFS分区中,则按名称顺序枚举它们,因此您可以使用类似

的内容
pushd "x:\where\files\are" && (
    for %%a in (*.bat) do call "%%a"
    popd
)

如果它不是NTFS并且文件没有按名称顺序枚举,我们需要强制命令,而不是直接请求文件列表,我们执行一个已排序的dir命令并处理它的输出< / p>

pushd "x:\where\files\are" && (
    for /f "delims=" %%a in ('dir /on /b /a-d *.bat') do call "%%a"
    popd
)