批处理脚本在调用其他批处理脚本后停止运行

13

我试图执行一个批处理脚本,它当前看起来像这样:

D:
cd D:My Documents\FtpSolution\Test
getftp.bat
call delimconvert.exe
call convert-to-xls.bat

然而,在 getftp.bat 运行后,这个命令序列就停止了。

我做错了什么?所有命令按顺序运行非常重要。

3个回答

37

使用call

Calls one batch program from another.

CALL [drive:][path]filename [batch-parameters]

  batch-parameters   Specifies any command-line information required by the
                     batch program.

如果你在不使用call的情况下调用其他批处理文件,则控制权将传递给它们,但不会再返回(这就是call所改变的内容)。


1
如果被调用的批处理文件调用了“另一个”批处理文件,那么这将无济于事。 - antipattern

2

使用start命令在新窗口中启动它。

start /wait getftp.bat


1
这是否需要在其他批处理脚本的末尾加上“exit”命令?目前,在新窗口中第一个脚本执行完成后,它只会停留在提示符处。 - zib24

1
尝试在调用批处理文件的末尾使用“Goto :EOF”而不是“exit”-在您的情况下,是getftp.bat文件... 这就是我解决问题的方法-在Win10企业版上测试过。

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