如何设置超时提示用户是否关闭 Windows PC?

How to set timeout on prompting user for yes or no to shutdown Windows PC?

我正在尝试每天在特定时间关闭 Windows。

我正在使用任务调度程序在特定时间关闭 Windows。我正在为此使用批处理文件。

set /p a="Are you turn off computer (y/n)"
if %a%==y (shutdown.exe /s /t 00) else (echo "")

我想在其中添加一些其他功能。我已经添加了用户输入和 if else 语句,要求用户关闭 Windows 或不关闭。

现在我想添加一个命令,如果用户在一定时间内没有提供任何输入,则检查并执行关机命令,但我不知道该怎么做。

set "a="
set /p a="Are you turn off computer (y/n)"
if not defined a echo no user entry
if "%a%"=="y" (shutdown.exe /s /t 00) else (echo "")

set /p 的问题在于,如果用户没有输入,则 set 中的变量名将保持不变。因此,最初应将其设置为 nothing

语法 SET "var=value"(其中值可能为空)用于确保分配的值中不包含任何杂散尾随空格。

IF 语句也可以接受 /i 开关(在 NOT 之后 - 如果使用的话)使 string-comparison case-insensitive.

使用choice命令:

choice /t 10 /d y /m "Shutdown"
if errorlevel 2 (echo that's a no & goto :eof)
shutdown /s /t 0

/t 10 给出 10 秒的超时。
/d y为默认(超时后选择)
/m "Shutdown 是提示字符串。