运行给定目录中的所有批处理文件

时间:2016-11-28 21:31:54

标签: windows batch-file infinite-loop

我有以下批处理脚本来运行目录中的所有文件 。但是这个脚本是一个无限循环并且不断重复。有没有办法在完成最后一个批处理文件后停止脚本以下是我的脚本

@echo off 
 for /R %%x in (*.bat) do ( 
 call "%%x" 
)
pause

2 个答案:

答案 0 :(得分:2)

由于您在当前目录中包含此脚本,因此它与其他目录一起运行:递归/无限调用。

将此脚本放一级,cd在bat文件的目录中并使用..\yourscript.bat

调用它

或者您可以过滤掉循环中的当前脚本:

@echo off 
 for /R %%x in (*.bat) do (
 if not "%%x" == "%~0" call "%%x" 
)

答案 1 :(得分:1)

这是因为您在与所有其他批处理文件相同的文件夹中启动批处理,将此批处理移动到另一个文件夹并将(*.bat)路径调整为(other_folder\*.bat)。 另一种方法是检查批次是否与执行的批次相同并跳过该批次。