我有一个这样的bat文件:
ipconfig
这会将 IP 信息打印到屏幕上,但在用户读取该信息之前,CMD 会自行关闭。
我相信 CMD 假设脚本已经完成,所以它关闭了。
脚本完成后如何保持 CMD 打开?
pause
不同,这是一个很好的解决方法(这就是我赞成这个答案的原因)但不是真正解决问题的方法,因为在用户点击 Enter
或 Space
窗口将关闭...
将 pause
放在 .BAT 文件的末尾。
根据您运行命令的方式,您可以将 /k
放在 cmd
之后以保持窗口打开。
cmd /k my_script.bat
只需将 cmd /k
添加到批处理文件的末尾也可以。感谢 Luigi D'Amico 在下面的评论中发布了有关此问题的信息。
cmd /k
放在末尾,窗口仍然会关闭。
只需在末尾添加 @pause
。
例子:
@echo off
ipconfig
@pause
或者你也可以使用:
cmd /k ipconfig
当 .bat 文件不是从命令行启动时(例如双击)。
echo The echoed text
@pause
https://i.stack.imgur.com/JTmOR.jpg
echo The echoed text
pause
https://i.stack.imgur.com/qu2IC.jpg
echo The echoed text
cmd /k
https://i.stack.imgur.com/TBLon.jpg
echo The echoed text & pause
https://i.stack.imgur.com/8p7hp.jpg
在(Windows 7)中添加 pause
对我不起作用
但在我的命令前面添加 cmd /k
确实有效。
例子 :
cmd /k gradlew cleanEclipse
start cmd /k
为我创造了奇迹。我实际上用它来准备科尔多瓦 phonegap 应用程序,它运行命令,显示结果并等待用户关闭它。下面是一个简单的例子
start cmd /k echo Hello, World!
我在我的案例中使用了什么
start cmd /k cordova prepare
更新
你甚至可以使用这个标题
start "My Title" echo Hello, World!
如果您在命令行中启动脚本,则添加 exit /b
以保持 CMD 处于打开状态
ipconfig
和其他内置批处理文件是一个非常糟糕的主意。
在 Windows 中,将“& Pause”添加到文件中命令的末尾。
我也很困惑为什么要在开头添加 cmd
,我想知道我是否必须先打开命令提示符。您需要做的是与 cmd /k
一起键入完整的命令。例如,假设您的批处理文件名为“my_command.bat”,它运行命令 javac my_code.java
,那么您的批处理文件中的代码应为:
cmd /k javac my_code.java
所以基本上不需要在当前文件夹打开命令提示符并输入上面的命令,但是您可以直接将此代码保存在您的批处理文件中并直接执行它。
javac -d C:\xxx\lib\ -classpath C:\xxx\lib\ *.java
cmd cd C:\xxx\yourbat.bat
第二个命令使您的 cmd 窗口不被关闭。重要的是您仍然可以输入新命令
作为旁注,这也适用于直接从 Windows 中的搜索栏运行命令。
例如,直接运行 ipconfig
将在命令退出后直接关闭 cmd 窗口。
https://i.stack.imgur.com/JhEBJ.png
使用 cmd \k <command>
不会 - 当我找到这个答案时,这是我试图做的。
https://i.stack.imgur.com/b2PY5.png
它具有始终识别您尝试运行的命令的额外优势。例如,从搜索栏运行 echo hello world
将不起作用,因为这不是命令,但 cmd \k echo hello world
工作正常。