我可以在批处理文件的末尾放置什么命令来防止在执行文件后自动关闭控制台?
在 Windows/DOS 批处理文件中:
pause
这会打印出一条不错的 "Press any key to continue . . . "
消息
或者,如果您不想要 "Press any key to continue . . ."
消息,请改为执行以下操作:
pause >nul
取决于确切的问题!
通常 pause
在 .bat 文件中完成这项工作。
如果您不希望 cmd.exe 关闭以继续输入,请在文件末尾使用 cmd /k
命令。
cmd /k
放在您的命令之前。 & cmd /k
不起作用。
如果您希望 cmd.exe 不关闭,并且能够继续键入,请使用 cmd /k
只是觉得有必要澄清 /k
的作用(来自 windows 网站):
/k :执行字符串指定的命令并继续。
因此,在 bat 文件末尾没有后续命令的 cmd /k
只会保持 cmd.exe
窗口打开以供进一步使用。
另一方面,批处理文件末尾的 pause
将简单地暂停进程并在第一次按下按钮时终止 cmd.exe
如果您使用 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
命令,则过去的示例都不起作用。因为由于某种原因,调用另一个批处理文件(在这种情况下是 mvn)时 cmd 的默认行为本质上是用它替换当前进程,这与调用 .exe 不同
call <myCommand>
解决了这个问题:我的提示在第一次执行后停止关闭
以下在批处理文件中使用命令的方式将打开新的命令提示符窗口,并且新窗口不会自动退出。
start "title" call abcd.exe param1 param2
start "title" call xyz.exe param1 param2
在要执行的代码下方添加 cmd.exe
作为新行:
c:\Python27\python D:\code\simple_http_server.py
cmd.exe
python script.py %1 && cmd
我的方法是编写一个实际的批处理(说“foo.bat”)来完成这项工作;然后创建另一个“start.bat”:
@echo off
cmd /k foo.bat
当我设置一次性环境变量时,我发现这非常有用。
cmd /k
(无需任何命令)放在 foo.bat
文件的末尾并运行它。您不需要单独的 start.bat
文件。
在批处理文件末尾调用 cmd
。
这里的答案有问题,所以我想出了这个,这对我有用(TM):
cmd /c node_modules\.bin\tsc
cmd /c node rollup_build.js
pause
除了 pause
。
set /p=
可以使用。它会期待用户输入,并在按下输入时释放流程。
或者
runas /user:# "" >nul 2>&1
除了不会显示用户输入的任何内容,也不会保留在命令历史记录中,这将执行相同的操作。
这个小技巧要求用户输入一个密钥并将其存储到变量 %exitkey% 中(这个变量可以被称为任何你喜欢的变量)。
set /p exitkey= "Press any key to continue..."
注意:'=' 后面的空格很重要
我知道我迟到了,但我首选的方式是:
:programend
pause>nul
GOTO programend
这样用户就不能使用回车退出。
可能性 1:只需制作 2 个 .bat 文件并写入第一个文件:
start <filename> // name of 2nd batch file
exit
批处理文件 2 是最终不会关闭的文件。因此,现在当您打开批处理 nr.1 时,它将启动第二个并自行关闭。当第二次完成时,它不会完全关闭(只要你不把退出放在最后)
可能性 2:批处理文件 1:
call <filename>
cls
echo End of file
pause
<any code you want>
当第二个文件结束时,它将再次进入文件 1 并输出其余部分。有了它,您甚至可以制作错误处理程序。如果 nr.1 崩溃,它会进入 nr.2 并显示它
有两种方法可以做到这一点取决于用例
1)如果您希望Windows cmd提示保持打开,以便您可以看到执行结果并在之后关闭它;利用
暂停
2)如果您希望 Windows cmd 提示符保持打开状态并允许您执行一些命令后缀;利用
命令
https://i.stack.imgur.com/vwetW.png
pause
或者
echo text to display
pause>nul
简单,将 cmd 添加到你的最后一行 bat,但是!如果您重置或清除系统路径,则必须使用完整路径启动 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失败,直接关闭窗口,看不到错误信息.
运行 .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 /k cd C:\Projects.....
如果您希望您的 cmd 在特定的长位置打开
添加暂停(如果您不想显示其他任何内容,请添加)>nul 它应该看起来像:@echo off title nice echo hello pause>nul 你将看到的只是“你好”
我个人放了 pause >nul
并等待按下一个键而不在控制台中显示任何额外的文本。