如何使命令提示符挂起?
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 仍然有效。
是的,我知道你可能会抱怨说这是一件坏事,但我还是想做!
我正在创建一个批处理程序,最后我需要它挂起而不接受用户输入。我知道一种方法只是创建一个无限循环:
: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 仍然有效。