【问题标题】:Shutdown command line and Message problems关闭命令行和消息问题
【发布时间】:2016-04-02 14:29:07
【问题描述】:
    set /p RESTART= WOULD YOU LIKE TO RESTART YOUR COMPUTER NOW?(Y/N):
    echo.    

if %RESTART%==Y  (
              echo.
              echo.
              echo YOUR COMPUTER WILL BE REBOOTED IN 30 SECONDS!!!
              shutdown.exe /r /t 30
              goto Ryes
              ) else (
                  echo.
                  echo.
                  echo YOU CHOSE NOT TO RESTART YOUR COMPUTER.
                  echo.
                  echo *****REMEMBER THAT YOU STILL NEED TO RESTART YOUR COMPUTER SO THE CHANGES CAN BE APPLIED! *****
                    )

    :Ryes
    echo.
    set /p ABORT= WOULD YOU LIKE TO ABORT THE REBOOT?(Y/N):
    echo.

    :A
    shutdown /a

    pause

如果我输入 Y,消息“您选择不重新启动计算机”仍然会出现。

关闭命令不起作用,我正在以管理员身份运行 .bat。 尝试了 Windows XP 和最新的 Windows 版本。

我输入的是 y 而不是 Y。但我认为这不是问题,因为其他用户输入选择的大写或小写都可以。 两个关机命令:

shutdown -r -f -t 30
shutdown.exe /r /t 30

我知道,因为我在尝试使用 Abort 选项时收到此消息:

Unable to abort the system shutdown because no shutdown was in progress.(1116)
Press any key to continue . . .

我的批处理文件有什么问题?

感谢您的所有帮助和时间。

【问题讨论】:

  • 你输入的是Y而不是y,对吧?

标签: batch-file


【解决方案1】:

有关IF

的更多信息

你应该修改这一行: if %RESTART%==Y 到此行 If /I "%RESTART%"=="Y"

/我做一个不区分大小写的字符串比较。

@echo off
set /p RESTART= WOULD YOU LIKE TO RESTART YOUR COMPUTER NOW?(Y/N):
echo.    
If /I "%RESTART%"=="Y"  (
    echo.
    echo.
    echo YOUR COMPUTER WILL BE REBOOTED IN 30 SECONDS!!!
    shutdown.exe /r /t 30
    goto Ryes
    ) else (
    echo.
    echo.
    echo YOU CHOSE NOT TO RESTART YOUR COMPUTER.
    echo.
    echo *****REMEMBER THAT YOU STILL NEED TO RESTART YOUR COMPUTER SO THE CHANGES CAN BE APPLIED! *****
)
pause

【讨论】:

  • @Fred22 无需将== 更改为equIF 操作数是不带引号的字符串是一种不好的编程习惯,尤其是当值来自用户输入时。您需要将其编码为:if /I "%RESTART%"=="Y"
【解决方案2】:

在检查 RESRART 变量是否定义为 Y 之前添加它

if %RESTART%==y set restart=Y

【讨论】:

  • 那是相当不必要的; if 可以选择进行不区分大小写的比较。
猜你喜欢
  • 2020-04-07
  • 1970-01-01
  • 2021-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-11
相关资源
最近更新 更多