【问题标题】:Batch files : How to leave the console window open批处理文件:如何使控制台窗口保持打开状态
【发布时间】:2012-11-24 15:11:51
【问题描述】:

我有两个批处理文件,其中一个执行另一个,即

  1. “我的批处理文件”> 2.“其他一些批处理文件”

我创建了第一个批处理文件的快捷方式并编辑了它的属性以按以下方式调用它。

cmd.exe /k "<SomePath>\<My Batch File>.bat" & pause

我想做什么 我希望在批处理文件执行结束后打开控制台窗口。现在它刚刚关闭,试图绕过 cmd 标志,没有结果。

平台:Windows7


更新 1

修改了结构,像这样的简单例子就不行了, 只有一个批处理文件,即没有 2.“其他批处理文件” 唯一的批处理文件包含这样的东西

start /B /LOW /WAIT make package
cmd /K

更新 2

从资源管理器调用的相同快捷方式不会关闭控制台窗口。 但是当从任务栏上的固定项目调用快捷方式时,控制台窗口会关闭

任何想法如何保持控制台窗口打开?

【问题讨论】:

标签: windows batch-file


【解决方案1】:

如果这确实是批处理文件的全部功能,请删除 cmd /K 并添加 PAUSE

start /B /LOW /WAIT make package
PAUSE

然后,只需将您的快捷方式指向"My Batch File.bat"...无需使用CMD /K 运行它。

更新

啊,一些新信息...您正在尝试从任务栏上的固定快捷方式执行此操作。

我找到了这个,Adding Batch Files to Windows 7 Taskbar like the Vista/XP Quick Launch,相关部分如下。

  1. 首先,通过点击开始按钮将CMD.EXE 的快捷方式固定到任务栏,然后在搜索框中输入“cmd”,右键单击结果并选择“固定到任务栏”。
  2. 右键单击任务栏上的快捷方式。
  3. 您将看到一个列表,其中包括“命令提示符”和“从任务栏中取消固定此程序”。
  4. 右键单击CMD.EXE 的图标并选择Properties
  5. 在目标框中,转到"%SystemRoot%\system32\cmd.exe" 的末尾并输入" /C " 以及路径和名称 批处理文件。

出于您的目的,您可以:

  1. 使用/C 并在批处理文件末尾添加PAUSE

  2. 将命令行更改为使用/K,并从批处理文件中删除PAUSE

【讨论】:

  • 我已经做了,基本上我的问题不是如何调用另一个批处理文件...
  • 那我们需要看看两个批处理文件的内容。
  • 请查看更新后的问题
  • 同样的问题,替换 CMD /K 不起作用。如果从资源管理器调用快捷方式,为什么控制台窗口不关闭?
【解决方案2】:

在这里:

cmd.exe /k "<SomePath>\<My Batch File>.bat" & pause

看看你在做什么:

  1. (cmd /K) 启动一个新的 cmd 实例。
  2. (& 暂停)暂停 CURRENT cmd 实例。

如何解决?好吧,使用正确的语法,包含新 CMD 实例的参数:

cmd.exe /k ""<SomePath>\<My Batch File>.bat" & pause"

【讨论】:

    【解决方案3】:

    我刚刚将最后一行写为 Pause,它在 .bat 和 .cmd 中都能正常工作。 它还会显示消息“按任意键继续”。

    【讨论】:

    • 这是正确答案!应该是票数最高的。
    【解决方案4】:

    在要保持打开的批处理文件的最后一行放置一个

    pause &gt;nul

    【讨论】:

    • 听起来好像很早就关闭了,可能是脚本中的错误。尝试打开cmd提示符并从那里运行它,然后您可以查看是否有任何错误。
    【解决方案5】:

    要让控制台窗口保持打开状态,您只需在批处理文件的最后一个命令行中添加:

    ' & pause'
    

    【讨论】:

      【解决方案6】:

      您可以在批处理文件的最后一行添加pause command

      @echo off
      echo Hey, I'm just doing some work for you.
      pause
      

      会给你这样的输出:

      嘿,我只是在为你做一些工作。

      按任意键继续...

      注意:使用@echo 可防止在打印输出之前输出命令。

      【讨论】:

        【解决方案7】:
        rem Just use "pause" at the end of the batch file.
        ...
        ......
        .......
        pause
        

        【讨论】:

          【解决方案8】:

          放在最后它会重新打开你的控制台

          start cmd 
          

          【讨论】:

          • 这并不能解决问题,用户希望保持窗口打开,而不是重新打开旧窗口。
          【解决方案9】:

          我只需按回车键并输入暂停,它就可以正常工作

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-08-20
            • 2013-06-01
            • 2014-04-20
            • 1970-01-01
            • 2010-12-26
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多