gpt4 book ai didi

if-statement - 如何在超时时要求批处理文件用户输入

转载 作者:行者123 更新时间:2023-12-04 13:20:23 28 4
gpt4 key购买 nike

所以我试图在 set 命令下的 if 语句之一中添加一个计时器,但我不确定该命令是什么。该脚本将启动并等待 30 分钟,然后重新启动 PC 或等待用户在那时输入或取消它。因此,我设置了“立即重启”和“取消”的两个 if 语句,但现在我需要一个 if 语句,让它从 30 分钟开始倒计时,然后再执行我的重启命令。此外,如果有人知道如何在那里添加一个视觉计时器,显示剩余的时间,那将是一个加号。谢谢你们!!!

@Echo off

:START

set /p answer=PC WILL RESTART IN 30 MINUTES, PRESS N TO RESTART NOW OR C TO CANCEL

if "%answer%"=="n" (GOTO Label1)
if "%answer%"=="c" (GOTO Label2)
if "TIMER GOES HERE" "==" (GOTO Label1)

:Label1

shutdown -r -t 60 -f

:Label2

exit

最佳答案

我推荐使用 CHOICE.EXE ,它是大多数 Windows 版本的标准配置(Windows NT、2000 和 XP 除外,它曾经可以从 Microsoft 的网站下载,但他们似乎忽略了 this * 在他们的 ftp 站点上的一个。)并且很简单使用。

@Echo off
:START
set waitMins=30

echo PC WILL RESTART IN %waitMins% MINUTES: Press N to restart [N]ow or C to [C]ancel
:: Calculate Seconds
set /a waitMins=waitMins*60
:: Choices are n and c, default choice is n, timeout = 1800 seconds
choice /c nc /d n /t %waitMins%

:: [N]ow = 1; [C]ancel = 2
goto Label%errorlevel%

:Label1

shutdown -r -t 60 -f
:: Make sure that the process doesn't fall through to Lable2
goto :eof

:Label2
exit

简单 CHOICE.EXE像这样工作...
choice

……和……一样
choice /c yn

...两者都会显示...
[Y,N]?

...两者都将等待用户按下 YN .

Choice 将结果存储在 %errorlevel% 中。 Y=1,N=2。

我提供的代码利用了默认的 /D <choice>和超时 /T <seconds>选项。

例如...
choice /c yn /d y /t 5

...让用户选择 Y 或 N,将等待 5 秒然后自动选择 Y 的默认选项,导致 %ERRORLEVEL%==1。

另一个例子是...
choice /c abcdef /m "Make a choice. "

...它显示...
Make a choice. [A,B,C,D,E,F]? 

...和...
A = %ERRORLEVEL% = 1
B = %ERRORLEVEL% = 2
C = %ERRORLEVEL% = 3
D = %ERRORLEVEL% = 4
E = %ERRORLEVEL% = 5
F = %ERRORLEVEL% = 6

没有 ERRORLEVEL 0。

更多使用 choice , 类型 CHOICE /?在命令提示符下。

* 注意 CHOICE.EXE的版本我提供了一个使用稍微不同的命令的链接,但提供了相同的功能。

关于if-statement - 如何在超时时要求批处理文件用户输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12331428/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com