实现 Windows 系统定时关机或重启

 需求

1. 下载大量内容需要挂机?想要下载完成后自动关机?

2. 想要电脑长期运行后自动重启?

3. 亦或是有其他原因需要让你的 Windows 电脑定时关机或重启?

教程

实现原理:利用 bat 脚本进行处理

具体步骤:

1. 在桌面新建一个TXT文本文件

2. 双击打开,然后将本文章底部的"源码"的内容全部复制并粘贴进去

3. 点击左上角的"文件",然后点击"另存为"

4. 在弹出的框中,编码处选择:ANSI(注意: 不要使用其他编码,否则会出现乱码的情况)

5. 文件名随意,本文使用:shutdown 。在选择好保存的位置后,点击保存即可

6. 保存后,会出现一个名为:shutdown.txt 的文本文件

7. 修改该文件的后缀名为 bat,即:将该文件的名字改为:shutdown.bat

8. 当提示警告时,点击确认修改即可

8. 双击即可运行

9. 教程结束

源码

@echo off

rem 以管理员的身份运行该脚本
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )

rem 修改背景颜色和运行窗口的标题
color 0F
title 	[ 定时关机工具 ]

rem 用户选择关机还是重启
echo.
echo "定时关机"    请按 1
echo "定时重启"    请按 2
echo "退出程序"    请按 其他键
echo.
set /p user_input=请输入您的选择:

rem 选择非关机和非重启,则退出程序
if NOT "%user_input%"=="1" if NOT "%user_input%"=="2" exit

rem 否则继续执行
echo 请设置任务执行的时间(时--分--秒)
echo.
set /p user_hour=请输入小时(范围0-23):
echo.
set /p user_minute=请输入分钟(范围0-59):
echo.
set /p user_second=请输入秒数(范围0-59):
echo.

set /a diff_second=%user_hour%*3600 + %user_minute%*60 + %user_second% - %time:~0,2%*3600 - %time:~3,2%*60 - %time:~6,2%

rem 判断执行时间是否合理
if %diff_second% lss 0 (
    echo -*-*-*-*-*-
    echo 请不要输入"过去的时间点",而是应该输入"未来的时间点"
    echo -*-*-*-*-*-
    ping -n 5 127.0.0.1>nul
    exit
)

if %diff_second% gtr 99999 (
    echo -*-*-*-*-*-
    echo 时间差距过大,超过了 27时:46分:39秒 的限制!
    echo -*-*-*-*-*-
    ping -n 5 127.0.0.1>nul
    exit
)

rem 等待任务执行
echo.
if "%user_input%"=="1" (
    echo 关机倒计时
    timeout /NOBREAK /t %diff_second%
    shutdown /s /t 0
)

if "%user_input%"=="2" (
    echo 重启倒计时
    timeout /NOBREAK /t %diff_second%
    shutdown /r /t 0
)

如果小伙伴觉得还不错的话,可以为笔者点赞,点击收藏哦

关注我,不定期分享小技巧