【问题标题】:Stop command prompt from getting closed after executing a batch file执行批处理文件后停止命令提示符关闭
【发布时间】:2013-11-02 05:20:26
【问题描述】:

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

【问题讨论】:

    标签: vba batch-file cmd


    【解决方案1】:

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

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

    例如

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

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

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

    一定要添加一些 ECHO 输出行来指示运行和故障排除的进度。或许可以在此处发布文件以获得更多帮助。

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 感谢 Govardhan 的快速回复!当我从 cmd 提示符运行 .bat 文件时,它没有关闭,但没有显示“按任意键继续...”字样。
      • 尝试将 Echo 放在不同的位置,并找出执行停止的位置。看看有没有中介退出。如果您可以将批处理文件放在问题中,我们很容易提出建议。
      • 谢谢。我会试试那个家伙! :)
      【解决方案3】:

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

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

      MyScript.bat >> text.txt
      

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

      【讨论】:

        猜你喜欢
        • 2016-02-08
        • 1970-01-01
        • 2016-10-06
        • 1970-01-01
        • 2020-09-02
        • 2019-06-29
        • 2022-01-03
        • 1970-01-01
        • 2013-09-24
        相关资源
        最近更新 更多