如何使命令提示符挂起?

时间:2015-05-13 19:48:52

标签: batch-file cmd hang

是的,我知道你可能会抱怨说做这件事很糟糕,但无论如何我都想这样做!

我正在创建一个批处理程序,最后,我需要它挂起而不接受用户输入。我知道一种方法只是创建一个无限循环:

    :pause
        pause > nul
        goto pause

但我不认为这是一个很好的选择。虽然我需要它挂起,我需要能够通过窗口顶部的红色“X”关闭按钮关闭。

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

这对我有用。它将< NUL重定向到self以防止 Ctrl + C 中断,并使用start /b /wait来禁止“终止批处理作业(是/否) ?”提示。

@echo off
setlocal

>NUL (echo(%* | findstr "\<hang\>" && waitfor redX)

rem // *** PUT YOUR MAIN SCRIPT HERE ***
echo End of line.
rem // ******* END MAIN SCRIPT *********
call :hang
goto :EOF

:hang
start /b /wait "" "%~f0" hang ^<NUL

在初始启动脚本时,echo(%* | findstr "\<hang\>" >NUL行会查找“挂起”的脚本参数。如果找到,脚本将执行waitfor命令。

通常,waitfor可以用 Ctrl + C 打破。但由于 Ctrl + C 的常规行为被start /b<NUL击败,除非用户执行,否则将实现挂起效果Ctrl + 中断或发送回答waitfor信号。

红色X仍然有效。