如何防止批处理文件执行后自动关闭控制台

时间:2009-06-12 18:57:38

标签: windows command-line batch-file

我可以在批处理文件的末尾添加什么命令以防止在执行文件后自动关闭控制台?

17 个答案:

答案 0 :(得分:580)

在Windows / DOS批处理文件中:

pause

这会打印一条漂亮的"Press any key to continue . . . "消息

或者,如果您不想要"Press any key to continue . . ."消息,请改为执行此操作:

pause >nul

答案 1 :(得分:129)

取决于确切的问题!

通常pause .bat 文件中完成工作。

如果您希望 cmd.exe 不能关闭以便能够继续输入,请在文件末尾使用cmd /k命令。

答案 2 :(得分:57)

  

如果您希望cmd.exe无法关闭,并且能够继续输入,请使用cmd /k

我觉得有必要澄清/k的作用(来自windows网站):

  

/k:执行string指定的命令并继续。

因此,在bat文件末尾没有跟进命令的cmd /k只会打开cmd.exe窗口以供进一步使用。

另一方面,批处理文件末尾的pause只会暂停该过程,并在按下第一个按钮时终止cmd.exe

答案 3 :(得分:21)

以下批处理文件中的命令方式将打开新的命令提示符窗口,新窗口不会自动退出。

start "title" call abcd.exe param1 param2  
start "title" call xyz.exe param1 param2

答案 4 :(得分:11)

在您要执行的代码下方添加cmd.exe作为新行:

c:\Python27\python D:\code\simple_http_server.py

cmd.exe

答案 5 :(得分:9)

我的方法是写一个实际的批次(说“foo.bat”)来完成这项工作;然后创建另一个“start.bat”:

@echo off
cmd /k foo.bat

我发现在设置一次性环境变量时这非常有用。

答案 6 :(得分:8)

在批处理文件的末尾调用cmd

答案 7 :(得分:6)

如果您使用的是 Maven ,并且想要跳过输入并阻止控制台关闭以查看结果,则除了脚本中的脚本外,还需要在脚本中使用CALL命令。 “ mvn全新安装”。

就像这样会关闭控制台

ECHO This is the wrong exemple
mvn clean install
pause

就像这样,控制台将保持打开状态

ECHO This is the right exemple
CALL mvn clean install
pause

如果您不使用CALL命令,则过去的示例都将无效。

答案 8 :(得分:5)

除了pause

set /p=

可以使用。它会指望用户输入并在按下enter时释放流量。

runas /user:# "" >nul 2>&1

将执行相同操作,但不会显示用户输入中的任何内容,也不会保留在命令历史记录中。

答案 9 :(得分:3)

可能性1: 只需制作2个.bat文件并写入第一个:

start <filename> // name of 2nd batch file
exit

批处理文件2是最终不会关闭的文件。 所以现在当你打开批处理nr.1它将启动第二个和cloe本身。 当第二次完成时它不会完全关闭(只要你不会在最后放出)

可能性2: 批处理文件1:

call <filename>
cls
echo End of file
pause
<any code you want>

当第二个文件结束时,它将再次进入文件1并输出其余部分。有了它,你甚至可以制作错误处理程序。如果nr.1崩溃,它进入nr.2并显示它

答案 10 :(得分:2)

这个小黑客要求用户输入密钥并将其存储到变量%exitkey%中(尽管这个变量可以被调用)。

set /p exitkey= "Press any key to continue..."

NB:&#39; =&#39;之后的空格非常重要

答案 11 :(得分:2)

echo text to display
pause>nul

{{1}}

答案 12 :(得分:1)

我知道我迟到了,但我的首选方式是:

:programend
pause>nul
GOTO programend

这样用户无法使用enter退出。

答案 13 :(得分:1)

有两种方法可以依赖于用例

1)如果您希望Windows cmd提示保持打开状态,以便您可以看到执行结果并在之后关闭它;使用

  

pause

2)如果您希望Windows cmd提示保持打开状态并允许您执行一些命令;使用

  

cmd

enter image description here

答案 14 :(得分:1)

此处的答案存在问题,因此我想出了一个对我有用的方法(TM):

cmd /c node_modules\.bin\tsc
cmd /c node rollup_build.js
pause

答案 15 :(得分:0)

很简单,将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,只关闭窗口,你可以&# 39;看到错误消息。

答案 16 :(得分:0)

cmd / k cd C:\ Projects .....

如果您要在特定的长位置打开cmd