批处理定时关机

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
@echo off
REM Author: YooooungLee TEL 155-****-9552
 
echo 欢迎使用自动关机计划设置脚本!
echo.
 
:choose_action
set /p "action_choice=请选择要执行的操作(输入1设置定时关机任务,输入2删除定时关机任务):"
 
if "%action_choice%"=="1" (
    echo.
    echo -- 设置定时关机任务 --
    echo.
    REM 设置定时关机任务脚本
    goto set_shutdown_task
)
 
if "%action_choice%"=="2" (
    echo.
    echo -- 删除定时关机任务,如提示“错误:拒绝访问”,请退出后,以管理员权限重新运行程序 --
    echo.
    REM 删除定时关机任务脚本
    goto delete_shutdown_task
)
 
echo 错误:无效的选项,请输入1或2来选择操作。
echo.
pause
goto choose_action
 
:set_shutdown_task
:: 之前完成的设置定时关机任务的脚本
setlocal enabledelayedexpansion
 
:input_time
set /p shutdown_time=请输入每日关机时间(格式为HH:mm,例如 20:00 表示晚上8点):
 
rem 检查输入的时间格式是否正确
for /f "tokens=1,2 delims=:" %%a in ("%shutdown_time%") do (
    set "hour=%%a"
    set "minute=%%b"
)
 
rem 检查小时和分钟是否都是数字
echo %hour% | findstr /r "[0-9]" >nul
if %errorlevel% neq 0 (
    echo 错误:输入的时间格式不正确,请重新输入。
    goto input_time
)
echo %minute% | findstr /r "[0-9]" >nul
if %errorlevel% neq 0 (
    echo 错误:输入的时间格式不正确,请重新输入。
    goto input_time
)
 
rem 检查小时和分钟是否在合法范围内(小时:00到23,分钟:00到59)
if %hour% lss 0 (
    echo 错误:输入的小时值不能小于0,请重新输入。
    goto input_time
)
if %hour% gtr 23 (
    echo 错误:输入的小时值不能大于23,请重新输入。
    goto input_time
)
if %minute% lss 0 (
    echo 错误:输入的分钟值不能小于0,请重新输入。
    goto input_time
)
if %minute% gtr 59 (
    echo 错误:输入的分钟值不能大于59,请重新输入。
    goto input_time
)
 
echo 正在设置每日 %shutdown_time% 自动关机...
echo 请勿关闭此窗口,否则设置将失效.
 
:: 删除之前设置的同名自动关机任务(如果存在)
schtasks /delete /tn "每日自动关机" /f >nul 2>&1
 
:: 创建新的自动关机任务
schtasks /create /tn "每日自动关机" /tr "shutdown /s /f /t 0" /sc daily /st %shutdown_time%
 
echo 每日 %shutdown_time% 自动关机任务设置完毕。
echo 可以双击此脚本再次设置计划任务或手动删除计划任务。
pause
goto :EOF
 
:delete_shutdown_task
:: 删除定时关机任务的脚本
echo 正在删除之前设置的每日自动关机任务...
schtasks /delete /tn "每日自动关机" /f
echo 已删除之前设置的每日自动关机任务。
pause
goto :EOF

  

posted @   飞雪飘鸿  阅读(86)  评论(0编辑  收藏  举报
https://damo.alibaba.com/ https://tianchi.aliyun.com/course?spm=5176.21206777.J_3941670930.5.87dc17c9BZNvLL
点击右上角即可分享
微信分享提示