Command line .bat脚本仅执行1行

Command line .bat脚本仅执行1行,command-line,scripting,Command Line,Scripting,我正在编写一个脚本,该脚本多次执行相同的功能,但当我运行该脚本时,只执行其中一个命令,其余命令在.bat文件运行后不执行 这是否与我的命令运行时间过长(15-20秒)有关?我已经写了很多bat文件,我从来没有遇到过这种情况。我是否需要在每个命令之间使用睡眠功能 我一直试图在谷歌上找到这个答案,但我可用的搜索词使我的搜索结果模糊而困难 非常感谢您的帮助 bat文件如下所示 IF input1 == "search term" goto location do something do someth

我正在编写一个脚本,该脚本多次执行相同的功能,但当我运行该脚本时,只执行其中一个命令,其余命令在.bat文件运行后不执行

这是否与我的命令运行时间过长(15-20秒)有关?我已经写了很多bat文件,我从来没有遇到过这种情况。我是否需要在每个命令之间使用睡眠功能

我一直试图在谷歌上找到这个答案,但我可用的搜索词使我的搜索结果模糊而困难

非常感谢您的帮助

bat文件如下所示

IF input1 == "search term" goto location
do something
do something
do something
etc
goto end of file
:location
do something else
do something else
do something else
...
您的“做其他事情”行是否涉及调用另一个批处理文件?如果是,您是否使用CALL命令

如果要递归调用另一个批处理文件,则需要使用call。否则,当被调用的批处理文件退出时,它不会返回到调用的批处理文件,而只是退出。这是MS-DOS时代的遗物;由于内存非常宝贵,MS开发人员决定批处理解释器在默认情况下不应保留调用堆栈——因此,如果需要调用堆栈,就必须使用call

有关详细信息,请参见
call/?

您的“做其他事情”行是否涉及调用另一个批处理文件?如果是,您是否使用CALL命令

如果要递归调用另一个批处理文件,则需要使用call。否则,当被调用的批处理文件退出时,它不会返回到调用的批处理文件,而只是退出。这是MS-DOS时代的遗物;由于内存非常宝贵,MS开发人员决定批处理解释器在默认情况下不应保留调用堆栈——因此,如果需要调用堆栈,就必须使用call


有关更多信息,请参见
call/?

谢谢Nick,这几乎肯定就是问题所在。我的脚本确实调用了另一个批处理文件。我会验证它,一旦我发现它是否解决了问题,我会重新评论。就是这样。非常感谢。谢谢,这很好地解释了为什么只执行了第一行:)谢谢,尼克,这几乎肯定是问题所在。我的脚本确实调用了另一个批处理文件。我会验证它,一旦我发现它是否解决了问题,我会重新评论。就是这样。非常感谢。谢谢,这很好地解释了为什么只执行第一行:)