如何使命令提示符挂起?

How Can I Make A Command Prompt Hang?

是的,我知道你可能会抱怨说这是一件坏事,但我还是想做!

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

    :pause
        pause > nul
        goto pause

但我认为这不是一个很好的选择。虽然我需要它挂起,但我需要能够通过 window.

顶部的红色 'X' 关闭按钮关闭

有什么想法吗?

这对我有用。它将 < NUL 重定向到 self 以防止 Ctrl+C 中断,并使用 start /b /wait 抑制 "Terminate batch job (Y/N)?"提示。

@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 行查找脚本参数 "hang"。如果找到,脚本将执行 waitfor 命令。

一般情况下,waitfor可以用Ctrl+C来打断。但是由于 Ctrl+C 的通常行为被 start /b<NUL 击败,所以挂起效果除非用户 Ctrl+Break 或发送应答 waitfor 信号。

不过,红色 X 仍然有效。