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

3
我有以下批处理脚本来运行目录中的所有文件。然而,这个脚本是一个无限循环并且会一直重复。是否有办法在执行完最后一个批处理文件后停止脚本?以下是我的脚本:
@echo off 
 for /R %%x in (*.bat) do ( 
 call "%%x" 
)
pause
2个回答

5

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

要么将此脚本移到上一级目录,然后在批处理文件的目录中使用..\yourscript.bat调用它。

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

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接