2

我使用 Excel VBA 中的 Shell 命令来运行某个 .bat 文件。CMD 出现,但在所有行执行后自动退出。我在 bat 结束时添加了 PAUSE 命令。文件,但它不工作。如何阻止命令提示符自动关闭?

4

3 回答 3

1

尝试使用 /K 开关来防止在运行批处理文件后退出,如下所示:

cmd /K "批处理文件的路径,包括文件名和扩展名"

例如

    cmd /K "C:\FOLDER\BATCH FILE.BAT"

或者

    cmd /K "C:\FOLDER\BATCH FILE.CMD"

显然,这不会显示您的批处理代码有任何错误,但它不会在运行后退出 - 与从命令行运行批处理文件非常相似。

绝对添加一些 ECHO 输出行以指示运行和故障排除的进度。也许在这里发布文件以获得更多帮助。

于 2013-11-02T09:26:49.903 回答
0

尝试打开命令提示符并运行批处理文件。dos shell 可能遇到错误并关闭。如果错误在执行到达暂停命令之前出现,它不会暂停让您读取错误并立即关闭。

如果这不起作用,请检查任何分支中是否有任何退出命令。或者,将 echo 语句放在不同的位置,并检查执行控制是否到达这些 echo。这样你就可以知道你的脚本是否在其他分支结束。

于 2013-11-02T05:28:43.447 回答
0

虽然可能实际上并没有回答发布的问题,但我在搜索一个非常相关的问题时偶然发现了这个问题。我还试图阻止命令提示符关闭,因为它出错并立即关闭。对我来说,查看输出就足够了,因为我真正想要的是能够看到错误以便调试它。

我找到的解决方案是将命令提示符的输出通过管道传输到文本文件中,如下所示:

MyScript.bat >> text.txt

这让我看到了我得到的错误。

于 2014-07-11T15:14:53.017 回答