我可以在批处理文件的末尾放置什么命令来防止在文件执行后自动关闭控制台?
当前回答
我的方法是写一个实际的批处理(说“foo.bat”)来完成工作;然后创建另一个"start.bat":
@echo off
cmd /k foo.bat
我发现这在设置一次性环境变量时非常有用。
其他回答
简单,添加cmd到你的最后一行蝙蝠,但是!如果您重置或清除系统路径,则必须以完整路径启动CMD,例如:
%windir%\system32\cmd.exe
例如,我有一个bat文件来重置jdk到旧版本,就像这样:
PATH=C:\Program Files\Java\jdk1.6.0_45\bin;C:\apache-ant-1.7.1\bin
SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_45
%windir%\system32\cmd.exe
因为我重置了系统路径,所以我必须运行完整路径的cmd,否则系统找不到cmd.exe,它将无法运行cmd,只是关闭窗口,你看不到错误信息。
如果您正在使用Maven,并且希望跳过输入并防止关闭控制台以查看结果,那么您需要在脚本中使用CALL命令,而不仅仅是'mvn clean install'。
像这样将关闭控制台
ECHO This is the wrong exemple
mvn clean install
pause
像这样控制台将保持打开状态
ECHO This is the right exemple
CALL mvn clean install
pause
如果你不使用CALL命令,两个过去的例子都不能工作。因为由于某种原因,cmd在调用另一个批处理文件(在本例中是mvn)时的默认行为本质上是用它替换当前进程,而不像调用.exe
运行.exe文件,然后暂停cmd
批处理脚本示例:
@echo off
myProgram.exe
PAUSE
带参数的批处理脚本示例:
@echo off
myProgram.exe argumentExample1 argumentExample2
PAUSE
我添加了@echo off,因为我不想在cmd中显示C:\user\Desktop>myProgram.exe和C:\user\Desktop>PAUSE
如果您希望cmd.exe不关闭,并能够继续键入,请使用cmd /k
只是觉得有必要澄清/k是做什么的(来自windows网站):
/k:执行string指定的命令并继续执行。
因此,在bat文件的末尾没有后续命令的cmd /k将保持cmd.exe窗口打开以供进一步使用。
另一方面,在批处理文件末尾的暂停将简单地暂停进程并在第一次按下按钮时终止cmd.exe
在Windows/DOS批处理文件中:
pause
这将打印一个漂亮的“按任意键继续…”消息
或者,如果你不想要“按任意键继续…”消息,可以这样做:
pause >nul
推荐文章
- 在批处理文件中处理子字符串的最佳方法是什么?
- 在Sublime Text 2中使用Ctrl+D进行多个选择时,我如何跳过匹配?
- #定义WIN32_LEAN_AND_MEAN具体排除了什么?
- 如何使用文件的行作为命令的参数?
- 如何添加一个设置路径只执行批处理文件?
- 最好的轻量级web服务器(只有静态内容)的Windows
- npm犯错!错误:EPERM:操作不允许,重命名
- 崇高的文本从命令行
- 如何保持Python脚本输出窗口打开?
- 使用.bat文件检查文件夹是否存在
- BAT文件:打开新的cmd窗口并在其中执行命令
- 如何做一个非贪婪匹配在grep?
- 如何查看Windows库(*.lib)的内容
- 在Windows中删除大文件夹最快的方法是什么?
- 如何在IntelliJ IDEA中输入命令行参数?