BAT文件执行后保持CMD打开


168

我有一个像这样的蝙蝠文件:

ipconfig

这样会将IP信息打印到屏幕上,但是在用户读取该信息之前,CMD会自行关闭。

我相信CMD假定脚本已完成,因此将其关闭。

脚本完成后如何保持CMD打开?



4
@RobKielty这是一个相同的问题-但是,我们在这里有了一个新答案(更好的恕我直言)
alfasin


@alfasin与罗格·尼隆辛(Rutger Nijlunsing)的答案不同吗?
罗伯·基尔蒂

@RobKielty不,我的答案与未使用的答案不同,pause这是一个不错的解决方法(这就是我赞成此答案的原因),但并不是一个真正解决问题的方法,因为在用户点击EnterSpace窗口关闭后,该问题才得以解决。 ..
alfasin

Answers:


162

根据您是如何运行的命令,你可以把/kcmd保持窗口打开。

cmd /k my_script.bat

只需将其添加cmd /k到批处理文件的末尾即可。感谢Luigi D'Amico,他在以下评论中对此发表了评论。


14
将所有脚本放入bat文件后-放-> cmd / k
路易吉·达米科

3
请注意,如果您的程序包含语法错误,则通过双击运行并最后将其关闭,该窗口仍将关闭cmd /k
Tobias Feil

如果用户双击该文件,则不能解释cmd窗口是否关闭。
K-SO的毒性在增加。

237

放在pause.BAT文件的末尾。


7
这正是我想要的,因为我在启动时运行bat文件,而不是通过CMD命令运行。+1
Hawkeye

3
如果执行后仍要与bat文件进行交互,只需将cmd / k替换为PAUSE-然后在脚本运行后,仍然可以在相同的上下文中运行手动命令
Luigi D'Amico

我不能忍受这不是这个问题的“解决方案”评论
newhouse

57

只需添加 @pause在末尾。

例:

@echo off
ipconfig
@pause

或者,您也可以使用:

cmd /k ipconfig

5
@符号有什么作用?@pause和pause之间有区别吗?
demonicdaron

3
@demonicdaron答案解释了@符号:stackoverflow.com/a/21077142/2258
理查德·摩根

但是在这种情况下,它没有任何区别。
Florian Leitgeb

@pause和之间的区别pause可以在以下答案中直观看到:stackoverflow.com/questions/17957076#60053224
ZygD

7

pause(Windows 7)添加到最后对我不起作用,
但添加cmd /k在命令前面确实可以。

范例:

cmd /k gradlew cleanEclipse

7

当.bat文件启动时,不是从命令行启动的(例如,双击)。

echo The echoed text
@pause

at_pause

echo The echoed text
pause

暂停

echo The echoed text
cmd /k

命令

echo The echoed text & pause

and_pause


3

start cmd /k为我做了魔术。我实际上用它来准备cordova phonegap应用程序,它运行命令,显示结果并等待用户关闭它。下面是简单的例子

start cmd /k echo Hello, World!

我在案例中使用了什么

start cmd /k cordova prepare

更新资料

您甚至可以通过使用以下标题

start "My Title" echo Hello, World!


1

如果要在命令行中启动脚本,请添加exit /b以保持CMD打开


由于修改ipconfig和其他内置批处理文件是一个非常糟糕的主意,因此实际上无法解决问题。
robinCTS

1

在Windows中,在文件的命令末尾添加“&Pause”。


1

我也很困惑为什么我们要cmd在开始时添加a ,我想知道是否必须先打开命令提示符。您需要做的是输入full命令以及cmd /k。例如,假设您的批处理文件名为“ my_command.bat”,它将运行命令,javac my_code.java则批处理文件中的代码应为:

cmd /k javac my_code.java

因此,基本上不需要在当前文件夹中打开命令提示符并键入上面的命令,但是您可以将此代码直接保存在批处理文件中并直接执行。


0
javac -d C:\xxx\lib\ -classpath C:\xxx\lib\ *.java

cmd cd C:\xxx\yourbat.bat

第二个命令使您的cmd窗口不关闭。重要的是您仍然可以输入新命令


0

附带说明,当直接从Windows的搜索栏中运行命令时,这也适用。

例如,直接运行ipconfig将在命令退出后直接关闭cmd窗口。

在此处输入图片说明

使用cmd \k <command>不会-当我找到此答案时,这就是我要尝试做的事情。

在此处输入图片说明

它具有始终识别要尝试运行的命令的附加优点。例如,echo hello world从搜索栏运行将无法正常运行,因为这不是命令,但是cmd \k echo hello world可以正常运行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.