确定关闭是否挂起

ygo*_*goe 18 windows shutdown

Windows 具有在shutdown /t一定延迟后关闭或重新启动计算机的命令。可以使用 中止挂起的关闭shutdown /a

但是我如何才能确定关闭当前是否以及何时处于待处理或计划状态,而不会中止它?

Dav*_*ill 15

如何在不中止关闭的情况下确定关闭当前是否以及何时处于待处理或计划状态?

我认为无法确定何时关闭。

您可以使用以下算法确定是否安排了关机:

  1. 运行使用“测试”关机shutdown /t xxx的时间大的值

    • 对于 Windows 7 或更高版本,允许的最长时间从 600 秒增加到 315,360,000 秒(10 年)
  2. 如果已经有关闭挂起,shutdown /t xxx则将失败并显示错误级别1190

    已安排系统关闭。(1190)

  3. 如果您没有收到上述错误,那么您就知道之前没有计划关闭,因此您需要使用shutdown /a.

以上可以在批处理文件中完成:

@echo off
rem perform a "test" shutdown with a large time
shutdown /t 999999
rem if there is already a shutdown pending then %ERRORLEVEL% will be 1190
if %ERRORLEVEL% equ 1190 (
  echo A shutdown is pending
  ) else (
  rem cancel the "test" shutdown
  shutdown /a
  echo No shutdown is pending
  )
Run Code Online (Sandbox Code Playgroud)

笔记:

  • 我还没有测试上述批处理文件,因为我现在不想关闭我的电脑。

进一步阅读

  • 它给你的代码注入了很大的信心,让你不敢自己运行它,即使它应该让计算机保持运行。 (2认同)