@echo off
:cancel
shutdown /a
:shut
set a=%1
shutdown -s -f -t %a%
cls
set /p a="the computer will shut in:" %=%
set /a a=%a%*60
if %a%=="a" call :cancel
pasue
call :shut
pause
Run Code Online (Sandbox Code Playgroud)
应该向用户询问一个数字。它将花费该数字并在x分钟内关闭计算机(I乘以60转换为秒),如果答案为“ a”,它将取消关闭计算机的操作。
当我启动程序时,它会问我输入的无穷大时间,根本不会调用shutdown
:)
我想看一下您的代码,您会将“标签”与“函数声明”混淆了。有一批中没有的功能(至少不会像在其他语言),只是call,goto和“标签”
对于显示的任务,您根本不需要任何标签:
@echo off
set /p a="the computer will shut in:" %=%
if /i "%a%"=="a" shutdown -a & goto :eof
set /a a*=60
shutdown -s -f -t %a%
Run Code Online (Sandbox Code Playgroud)
(注意:您的代码在逻辑上失败:set /a总是返回一个Integer(只要它不会产生语法错误),因此将变量与a 后面的字符串进行比较是没有意义的set /a)
推荐阅读:GOTO:EOF返回哪里?
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |