BAT文件执行后保持CMD打开

Posted

技术标签:

【中文标题】BAT文件执行后保持CMD打开【英文标题】:Keep CMD open after BAT file executes 【发布时间】:2013-07-31 04:38:15 【问题描述】:

我有一个这样的 bat 文件:

ipconfig

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

我相信 CMD 假定脚本已经完成,所以它关闭了。

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

【问题讨论】:

欺骗***.com/questions/988403/… @RobKielty 这是同一个问题好吧 - 但这里我们有一个新答案(恕我直言更好) How to keep cmd running after opening a .bat file script的可能重复 @alfasin 这和 Rutger Nijlunsing 的回答不一样吗? @RobKielty 不,我的答案与它不使用 pause 不同,这是一个很好的解决方法(这就是我赞成这个答案的原因)但不是真正解决问题的方法因为在用户点击EnterSpace 后,窗口将关闭... 【参考方案1】:

作为旁注,这也适用于直接从 Windows 中的搜索栏运行命令。

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

使用 cmd \k <command> 不会 - 当我找到这个答案时,我正在尝试这样做。

它还有一个额外的优势,那就是始终能够识别您尝试运行的命令。例如。从搜索栏中运行 echo hello world 将不起作用,因为这不是命令,但 cmd \k echo hello world 工作正常。

【讨论】:

【参考方案2】:

根据您运行命令的方式,您可以将/k 放在cmd 之后以保持窗口打开。

cmd /k my_script.bat

只需将cmd /k 添加到批处理文件的末尾也可以。感谢Luigi D'Amico 在下面的 cmets 中发布了有关此内容。

【讨论】:

在你的 bat 文件中的所有脚本之后 - 放 --> cmd /k 请注意,如果您的程序包含语法错误,如果您通过双击运行它并在末尾加上cmd /k,窗口仍然会关闭。 这并不能解释如果用户双击文件会关闭 cmd 窗口。【参考方案3】:

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

echo The echoed text
@pause

echo The echoed text
pause

echo The echoed text
cmd /k

echo The echoed text & pause

【讨论】:

【参考方案4】:

只需在末尾添加 @pause

例子:

@echo off
ipconfig
@pause

或者你也可以使用:

cmd /k ipconfig

【讨论】:

@ 符号有什么作用? @pause 和 pause 有区别吗? @demonicdaron 解释@符号的答案:***.com/a/21077142/2258 但是在这种情况下,它应该没有任何区别。 @pausepause 之间的区别可以在这个答案中直观地看到:***.com/questions/17957076#60053224 这里没有任何区别,因为“echo”已经设置为“off”。【参考方案5】:

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

cmd /k javac my_code.java

所以基本上不需要在当前文件夹打开命令提示符并输入上面的命令但是你可以直接把这段代码保存在你的批处理文件中直接执行。

【讨论】:

【参考方案6】:

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

【讨论】:

【参考方案7】:

在 (Windows 7) 中添加 pause 到最后对我不起作用 但是在我的命令前面添加cmd /k 确实有效。

例子:

cmd /k gradlew cleanEclipse

【讨论】:

【参考方案8】:

start cmd /k 为我创造了奇迹。我实际上用它来准备科尔多瓦 phonegap 应用程序,它运行命令,显示结果并等待用户关闭它。下面是一个简单的例子

start cmd /k echo Hello, World!

我在我的案例中使用了什么

start cmd /k cordova prepare

更新

你甚至可以使用

start "My Title" echo Hello, World!

【讨论】:

【参考方案9】:

如果您是在命令行中启动脚本,则添加 exit /b 以保持 CMD 处于打开状态

【讨论】:

实际上并不能解决问题,因为修改 ipconfig 和其他内置批处理文件是一个非常糟糕的主意【参考方案10】:
javac -d C:\xxx\lib\ -classpath C:\xxx\lib\ *.java

cmd cd C:\xxx\yourbat.bat

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

【讨论】:

【参考方案11】:

pause 放在 .BAT 文件的末尾。

【讨论】:

如果您在执行后仍想与 bat 文件交互,请将 PAUSE 替换为 cmd /k - 然后在您的脚本运行后,您仍然可以在相同的上下文中运行手动命令

以上是关于BAT文件执行后保持CMD打开的主要内容,如果未能解决你的问题,请参考以下文章

求教:运行bat文件后如何让cmd窗口自动关闭?

bat 打开cmd 执行Python文件

BAT 文件:打开新的 cmd 窗口并在其中执行命令

如何在没有终端(保持打开状态)的情况下运行 .bat 文件?

php web socket脚本bat文件保持打开

使用bat打开多个cmd窗口执行gulpnode