110

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

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

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

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

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

平台:Windows7


更新 1

修改了结构,像这样的简单例子也不起作用,只有一个批处理文件,即没有2。“其他批处理文件”唯一的批处理文件包含这样的smth

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

更新 2

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

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

4

9 回答 9

129

如果这确实是批处理文件所做的所有事情,请删除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并将 aPAUSE放在批处理文件的末尾。

    或者

  2. 更改命令行以使用/KPAUSE从批处理文件中删除。
于 2012-12-06T14:56:00.720 回答
13

在这儿:

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

看看你在做什么:

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

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

cmd.exe /k ""<SomePath>\<My Batch File>.bat" & pause"
于 2012-12-06T22:04:12.493 回答
6

我刚刚写了最后一行,因为它在 .bat 和 .cmd 上都可以正常工作它还将显示消息“按任意键继续”。

于 2014-08-12T18:37:38.850 回答
5

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

pause >nul

于 2012-12-06T15:02:00.490 回答
3

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

' & pause'
于 2013-10-29T15:48:06.880 回答
2

您可以在批处理文件的最后一行输入一个pause命令:

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

会给你这样的输出:

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

按任意键继续 ...

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

于 2016-08-31T06:15:08.280 回答
0
rem Just use "pause" at the end of the batch file.
...
......
.......
pause
于 2018-11-21T22:57:31.507 回答
-1

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

start cmd 
于 2017-05-11T21:35:36.563 回答
-5

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

于 2015-05-03T11:52:23.270 回答