2017-09-15 222 views

回答

2

您可以调用scriptname.cmdcmd /c。这样exit将退出您的cmd /c调用,而不是祖先控制台进程。

Test1.bat:

@echo off & setlocal 

echo Exiting. 
exit 0 

Test2.bat:

@echo off & setlocal 

echo Invoking Test1.bat 
cmd /c Test1.bat 

echo Still running! 

Test2.bat的输出:

调用Test1.bat
退出。
仍在运行!

...并且控制台窗口保持打开状态。

+0

谢谢,'cmd/c'处理得很好,所以我会跳过使用'call'。 – EquipDev

+0

如果Test1.bat设置了您想要保留的环境变量,那么除非脚本在当前shell中运行,否则不会设置它们。这是'CALL'启用的。您将失去该功能。 .bat脚本应该用'EXIT/B'修正。 – lit

0

您是否尝试将退出码设置为0?像这样?

command && exit 0 

我有CMD命令没有多少经验,但我相信它应该工作。

+0

终端仍以此结构终止。 – EquipDev

+0

即使您使用该文件创建了bat文件,并在退出之前调用它! –

+0

我需要的是一个封装脚本的调用,并且答案中的'cmd/c'完成这个技巧。 – EquipDev