批处理文件:如何保持控制台窗口打开

问题描述 投票:0回答:9

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

  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
9个回答
130
投票

如果这确实是批处理文件所做的全部操作,请删除

cmd /K
并添加
PAUSE

start /B /LOW /WAIT make package
PAUSE

然后,只需将快捷方式指向

"My Batch File.bat"
...无需使用
CMD /K
运行它。

更新

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

我发现了这个,向 Windows 7 任务栏添加批处理文件,如 Vista/XP 快速启动,相关部分如下。

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

为了您的目的,您可以:

  1. 使用

    /C
    并在批处理文件末尾添加
    PAUSE

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

15
投票

问题就在这里:

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

看看你在做什么:

  1. (cmd /K) 启动 NEW cmd 实例。
  2. (&暂停)暂停 当前 cmd 实例。

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

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

6
投票

我刚刚将最后一行写为Pause,它在 .bat 和 .cmd 中都运行良好。 它也会显示消息“按任意键继续”。


5
投票

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

pause >nul


3
投票

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

' & pause'

2
投票

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

pause
命令

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

会给你类似这样的输出:

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

按任意键继续...

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


0
投票
rem Just use "pause" at the end of the batch file.
...
......
.......
pause

-1
投票

放在最后,它将重新打开您的控制台

start cmd 

-5
投票

我只需按 Enter 键并输入 Pause 即可正常工作

© www.soinside.com 2019 - 2024. All rights reserved.