Windows 8 自带定时关机的4种实现方法

时间:2024-04-17 15:41:17

 

问题描述:前几天发布了一篇文章[ Windows 7/8 自带定时关机命令 ],文章中的用到的命令我在Windows 7都运行成功,但没有在Windows 8 上进行测试,因为我认为Windows 8只是在Windows 7上进行优化和改进,应该不会更改命令行命令。昨天(2013/08/09)我进行了测试,结果证明我错了,Windows 8弃用了大名鼎鼎的“at”命令,将创建事件命令放在了“schtasks.exe”程序中。通过接近3个小时的测试和学习,我在Windows 8 找到了4种创建定时关机任务的方法,包括命令行和GUI客户端操作。
 
内容:本教程分为两部分,第一部分为Windows 8上“创建定时关机任务”的具体操作步骤,第二部分为我的学习过程和总结。如果只想了解“创建定时关机任务”,你只需要看第一部分内容。
 
为更好地理解本教程,你可能需要具备的知识你可以很轻松地学会以下知识,请在Google搜索相关知识学习)
  1. 知道什么是“快捷键”;
  2. 知道“cmd.exe”程序;
  3. 知道什么是“命令行命令”;
  4. 知道什么是“计划任务”。
实现平台:
  • OS:Windows 8
  • 电脑:Acer ASPIRE 4750G
通过Windows 8自带功能创建定时关机任务有以下四种方法
  1. 通过“任务计划程序”程序窗体进行创建;
  2. 通过“shutdown”程序GUI窗体进行创建;
    • 此方法只能使计算机在短时间内关闭,无法达到一般意义上的定时关机
  3. 通过"shutdown"程序命令进行创建;
    • 此方法与上一种方法的原理一致,也只能使计算机在短时间内关闭,无法达到一般意义上的定时关机
  4. 通过“schtasks.exe”程序命令进行创建。
以下为四种方法对应的操作步骤:
 
第一种方法:【通过“任务计划程序”程序窗体进行创建】的操作步骤
  1. 快捷键“Windows + R”打开【运行】程序,输入“taskschd.msc”命令后回车可打开“任务计划程序”,选中左边栏中的【任务计划程序(本地)】后,可在右边【操作】栏下找到【创建基本任务...】,如下图所示:


  2. 单击【创建基本任务...】打开创建基本事件向导窗体,通过此窗体可以创建定时关机任务,如下图所示:


  3. 在【名称(A):】下输入框中输入任务名称,可自定义输入,例如:“Geralds_shutdown_task”;在【描述(D):】下输入框中输入你对该任务的描述,可不填。如下图所示:


  4. 点击【下一步】进入【触发器】标签,在【希望该任务何时开始?】下选择你想开始此任务的时间,此处选择【一次(O)】。若选择【每天(D)】表示每天都执行此任务;若选择【计算机启动时(H)】表示每次启动计算机都执行此任务,其他选项的意义类似。如下图所示:


  5. 点击【下一步】进入【一次】标签,在此处设置任务开始的日期和时间,此处日期设定为2013/8/10,时间设定为19:35:00,注意设定的日期和时间应该大于当前日期和时间,否则不会执行任务。如下图所示:


  6. 点击【下一步】进入【操作】标签,此处用来选择任务启动时执行的操作,【发送电子邮件(S)】和【显示消息(M)】均已弃用,此处选择【启动程序(T)】,如下图所示:


  7. 点击【下一步】进入【启动程序】标签,在【程序或脚本(P)】下的输入框中输入“shutdown”,并在【添加参数(可选)(A):】下的输入框中输入“/s”,如下图所示:

    解释:
    1.“shutdown”表示启动的程序是“shutdown.exe”,该程序为系统自带程序。
    2.“/s”是一个“关机”参数,还可以改为“/r”表示“重新启动”计算机,改为“/h”表示“休眠”计算机——“/s”“/r”“/h”只能选择一个;你也可以在其后边加上“/t ss”来设定延迟ss秒关机,例如设定延迟60秒关机的参数是“/s /t 60”。


  8. 点击【下一步】进入【完成】标签以确认你输入的信息,输入无误后点击【完成】,此时创建定时关机任务成功,到达设定日期和时间后系统会自动关机(到时如果想取消关机,可以在cmd命令行中输入命令“shutdown /a”,桌面右下角出现下图弹窗表示取消成功:)。

第二种方法:【通过“shutdown”程序GUI窗体进行创建】的操作步骤
PS:此方法只能使计算机在短时间内关闭,无法达到一般意义上的定时关机
  1. 快捷键“Windows + R”打开【运行】程序,输入“cmd”命令后回车可打开“cmd命令行”窗体,如下图所示:


  2. 在命令行窗体中输入“shutdown /i”命令,如下图所示:


  3. 回车可打开【远程关机对话框】窗体,如下图所示:


  4. 点击【添加(A)...】按钮,在弹出的【添加计算机】对话框中输入英文状态下的句号"."或本地计算机名(代表对本地计算机进行操作),也可以输入局域网内的任何本地计算机具有访问权限的计算机名,以对其进行操作。可以同时操作多台计算机。此处仅对本地计算机进行操作,故输入"."。如下如所示:

    点击【确定】后可以看到【远程关机对话框】窗体中【计算机(U):】下的列表框中添加了刚刚输入的计算机名项目,如下图所示:


  5. 在【你想让这些计算机做什么(D):】下的下拉列表中选择你想让这些计算机执行的动作,此处选择【重新启动】,如下图所示:


  6. 按需求选择是否勾选【警告用户此操作(W)】,作用:在执行上一步骤中选中的动作前提示用户将执行此动作。此处勾选并在【显示警告(L)】下的输入框中输入30[秒](用户按需求自定义输入),表示提前30秒显示警告。图下图所示:


  7. 在【注释:(此字段对你选择的原因来说是必须的)(E)】下的输入框中输入执行动作的注释,用户可按需求进行自定义设置,但不可为空。此处输入“Test shutdown /r /t 30”,如下图所示:

    备注:此处不对【关闭时间跟踪程序】组中的【选项(O):】等操作进行说明,需要了解请网上查找资料或与我联系(QQ:807031319)。
  8. 点击【确定】,将会立即关闭计算机,无法进行一般意义上的定时。(如果此时想取消关机操作,可在命令行中输入命令“shutdown /a”后回车,桌面右下角出现下图弹窗表示取消成功:



第三种方法:【通过"shutdown"程序命令进行创建】的操作步骤
PS:此方法与第二种方法的原理一致,也只能使计算机在短时间内关闭,无法达到一般意义上的定时关机
  1. 快捷键“Windows + R”打开【运行】程序,输入“cmd”命令后回车可打开“cmd命令行”窗体,如下图所示:


  2. “cmd命令行”窗体输入命令“shutdown /s”即可立即关机。
    • 说明:
      • “shutdown”表示启动“shutdown.exe”程序;
      • “/s”是一个参数,表示“关机(shutdown的首字母)”。
    • 扩展:
      • 可以将“/s”改为“/r”“/h”。“/r”表示重新启动计算机,“/h”表休眠计算机。“/s”,“/r”和“/h”不能共存,三者只能选其一。
      • 可以添加参数“/t ss”表示延迟ss秒后再执行命令,例如“shutdown /s /t 30”表示延迟30秒后关机。
  3. 如果此时想取消关机操作,可在命令行中输入命令“shutdown /a”后回车,桌面右下角出现下图弹窗表示取消成功:


付“shutdown”命令的用法说明,你也可以在命令行中输入“shutdown /?”后回车查看:
..................................................................................................................................................................
用法: shutdown [/i | /l | /s | /r | /g | /a | /p | /h | /e | /o] [/hybrid] [/f]
    [/m \\computer][/t xxx][/d [p|u:]xx:yy [/c "comment"]]

    没有参数   显示帮助。这与键入 /? 是一样的。
    /?         显示帮助。这与不键入任何选项是一样的。
    /i         显示图形用户界面(GUI)。
               这必须是第一个选项。
    /l         注销。这不能与 /m 或 /d 选项一起使用。
    /s         关闭计算机。
    /r         完全关闭并重新启动计算机。
    /g         完全关闭并重新启动计算机。在重新启动系统后,
               重新启动任何注册的应用程序。
    /a         中止系统关闭。
               这只能在超时期间使用。
    /p         关闭本地计算机,没有超时或警告。
               可以与 /d 和 /f 选项一起使用。
    /h         休眠本地计算机。
               可以与 /f 选项一起使用。
    /hybrid    执行计算机关闭并进行准备以快速启动。
               必须与 /s 选项一起使用。
    /e         记录计算机意外关闭的原因。
    /o         转到高级启动选项菜单并重新启动计算机。
               必须与 /r 选项一起使用。
    /m \\computer 指定目标计算机。
    /t xxx     将关闭前的超时时间设置为 xxx 秒。
               有效范围是 0-315360000 (10 年),默认值为 30。
               如果超时时间大于 0,则默示为
               /f 参数。
    /c "comment" 有关重新启动或关闭的原因的注释。
               最多允许 512 个字符。
    /f         强制关闭正在运行的应用程序而不事先警告用户。
               如果为 /t 参数指定大于 0 的值,
               则默示为 /f 参数。
    /d [p|u:]xx:yy  提供重新启动或关闭的原因。
               p 指示重新启动或关闭是计划内的。
               u 指示原因是用户定义的。
               如果未指定 p 也未指定 u,则重新启动或关闭
               是计划外的。
               xx 是主要原因编号(小于 256 的正整数)。
               yy 是次要原因编号(小于 65536 的正整数)。

此计算机上的原因:
(E = 预期 U = 意外 P = 计划内,C = 自定义)
类别    主要    次要    标题

U      0       0       其他(计划外)
E       0       0       其他(计划外)
E P     0       0       其他(计划内)
U      0       5       其他故障: 系统没有反应
E       1       1       硬件: 维护(计划外)
E P     1       1       硬件: 维护(计划内)
E       1       2       硬件: 安装(计划外)
E P     1       2       硬件: 安装(计划内)
E       2       2       操作系统: 恢复(计划内)
E P     2       2       操作系统: 恢复(计划内)
  P     2       3       操作系统: 升级(计划内)
E       2       4       操作系统: 重新配置(计划外)
E P     2       4       操作系统: 重新配置(计划内)
  P     2       16      操作系统: Service Pack (计划内)
        2       17      操作系统: 热修补(计划外)
  P     2       17      操作系统: 热修补(计划内)
        2       18      操作系统: 安全修补(计划外)
  P     2       18      操作系统: 安全修补(计划内)
E       4       1       应用程序: 维护(计划外)
E P     4       1       应用程序: 维护(计划内)
E P     4       2       应用程序: 安装(计划内)
E       4       5       应用程序: 没有反应
E       4       6       应用程序: 不稳定
U      5       15      系统故障: 停止错误
U      5       19      安全问题(计划外)
E       5       19      安全问题(计划外)
E P     5       19      安全问题(计划内)
E       5       20      网络连接丢失(计划外)
U      6       11      电源故障: 电线被拔掉
U      6       12      电源故障: 环境
  P     7       0       旧版 API 关机
..................................................................................................................................................................
 

第四种方法:【通过“schtasks.exe”程序命令进行创建】的操作步骤
 
  1. 快捷键“Windows + R”打开【运行】程序,输入“cmd”命令后回车可打开“cmd命令行”窗体,如下图所示:


  2. “cmd命令行”窗体输入命令“schtasks /Create /SC ONCE /TN taskname /TR "shutdown /s" /ST hh:ss”(其中"hh:ss"表示hh时ss分,用户根据需求自定义设定:此时间必须在当前时间以后),例如“schtasks /Create /SC ONCE /TN taskname /TR  "shutdown /s" /ST 23:00”表示在当天23:00自动关闭计算机。
    • 说明:
      • "schtashs /Create"表示执行“schtasks.exe”程序的Create命令,用来创建一个计划任务。
      • "/SC"是"/Create"下的一个参数,用来设定计划任务执行的次数(schedule)。此处只需执行一次,故设定为ONCE.
      • "TN"是"/Create"下的一个参数,用来命名计划任务(计划任务的id),用户可根据需求进行自定义命名。此处命名为"taskname".
      • "TR"是"/Create"下的一个参数,用来指定运行的程序及参数(参数为可选项,用户可根据需求进行设置,当指定参数时需将整个/TR的内容置于英文状态下的双引号中(" "),形如/TR "shutdown /s")。此处将运行关机程序,故应输入“/TR "shutdown /s"”。
      • "/ST hh:ss"是"/Create"下的一个参数,用来指定运行的程序的时间,此时间必须在当前时间之后。此处设定为“/ST 23:00”,表示当天23:00执行指定程序。
    • 扩展:
      • "schtasks"主要有7个子命令,可以实现创建新计划任务"/Create"、删除计划任务"/Delete"、显示所有计划任务"/Query"、更改计划任务"/Change"、按需运行计划任务"/Run"、中止当前正在运行的计划任务"/End"和显示与计划的任务名称相应的安全标示符 "/ShowSid"。
      • "/TR"可已路径的形式指定本地或远程计算机上已安装的任何程序。
      • "/D"参数(Day)可指定该周内运行任务的日期。
                               有效值: MON、TUE、WED、THU、FRI、SAT、SUN
                               和对 MONTHLY 计划的 1 - 31(某月中的日期)。通配符“*”指定所有日期。
        例如"/D  MON"表示本周一。
      • "/M"参数(Months)可指定一年内的某月。默认是该月的第一天。
                               有效值: JAN、FEB、MAR、APR、MAY、JUN、JUL、 AUG、SEP、OCT、NOV  和 DEC。通配符“*” 指定所有的月。
        例如"/M AUG"表示今年8月份。
  3. 如果此时想取消关机操作,可在命令行中输入命令“shutdown /a”后回车,桌面右下角出现下图弹窗表示取消成功:


付“schtasks”命令的用法说明,你也可以在命令行中输入“schtasks /?”后回车查看:
..................................................................................................................................................................
SCHTASKS /parameter [arguments]

描述:
    允许管理员创建、删除、查询、更改、运行和中止本地或远程系统上的计划任
    务。

参数列表:
    /Create         创建新计划任务。

    /Delete         删除计划任务。

    /Query          显示所有计划任务。

    /Change         更改计划任务属性。

    /Run            按需运行计划任务。

    /End            中止当前正在运行的计划任务。

    /ShowSid        显示与计划的任务名称相应的安全标识符。

    /?              显示此帮助消息。

Examples:
    SCHTASKS
    SCHTASKS /?
    SCHTASKS /Run /?
    SCHTASKS /End /?
    SCHTASKS /Create /?
    SCHTASKS /Delete /?
    SCHTASKS /Query  /?
    SCHTASKS /Change /?
    SCHTASKS /ShowSid /?
 
..................................................................................................................................................................
 
付“schtasks /Create”命令的用法说明,你也可以在命令行中输入“schtasks /Create /?”后回车查看:
..................................................................................................................................................................
SCHTASKS /Create [/S system [/U username [/P [password]]]]
    [/RU username [/RP password]] /SC schedule [/MO modifier] [/D day]
    [/M months] [/I idletime] /TN taskname /TR taskrun [/ST starttime]
    [/RI interval] [ {/ET endtime | /DU duration} [/K] [/XML xmlfile] [/V1]]
    [/SD startdate] [/ED enddate] [/IT | /NP] [/Z] [/F] [/HRESULT] [/?]

描述:
     允许管理员在本地或远程系统上创建计划任务。

参数列表:
    /S   system        指定要连接到的远程系统。如果省略这个
                       系统参数,默认是本地系统。

    /U   username      指定应在其中执行 SchTasks.exe 的用户上下文。

    /P   [password]    指定给定用户上下文的密码。如果省略则
                       提示输入。

    /RU  username      指定任务在其下运行的“运行方式”用户
                       帐户(用户上下文)。对于系统帐户,有效
                       值是 ""、"NT AUTHORITY\SYSTEM" 或
                       "SYSTEM"。
                       对于 v2 任务,"NT AUTHORITY\LOCALSERVICE"和
                       "NT AUTHORITY\NETWORKSERVICE"以及常见的 SID
                         对这三个也都可用。

    /RP  [password]    指定“运行方式”用户的密码。要提示输
                       入密码,值必须是 "*" 或无。系统帐户会忽略该
                       密码。必须和 /RU 或 /XML 开关一起使用。

/RU/XML    /SC   schedule     指定计划频率。
                       有效计划任务:  MINUTE、 HOURLY、DAILY、WEEKLY、
                       MONTHLY, ONCE, ONSTART, ONLOGON, ONIDLE, ONEVENT.

    /MO   modifier     改进计划类型以允许更好地控制计划重复
                       周期。有效值列于下面“修改者”部分中。

    /D    days         指定该周内运行任务的日期。有效值:
                       MON、TUE、WED、THU、FRI、SAT、SUN
                       和对 MONTHLY 计划的 1 - 31
                       (某月中的日期)。通配符“*”指定所有日期。

    /M    months       指定一年内的某月。默认是该月的第一天。
                       有效值: JAN、FEB、MAR、APR、MAY、JUN、
                       JUL、 AUG、SEP、OCT、NOV  和 DEC。通配符
                       “*” 指定所有的月。

    /I    idletime     指定运行一个已计划的 ONIDLE 任务之前
                       要等待的空闲时间。
                       有效值范围: 1 到 999 分钟。

    /TN   taskname     指定唯一识别这个计划任务的名称。

    /TR   taskrun      指定在这个计划时间运行的程序的路径
                       和文件名。
                       例如: C:\windows\system32\calc.exe

    /ST   starttime    指定运行任务的开始时间。
                       时间格式为 HH:mm (24 小时时间),例如 14:30 表示
                       2:30 PM。如果未指定 /ST,则默认值为
                       当前时间。/SC ONCE 必需有此选项。

    /RI   interval     用分钟指定重复间隔。这不适用于
                       计划类型: MINUTE、HOURLY、
                       ONSTART, ONLOGON, ONIDLE, ONEVENT.
                       有效范围: 1 - 599940 分钟。
                       如果已指定 /ET 或 /DU,则其默认值为
                       10 分钟。

    /ET   endtime      指定运行任务的结束时间。
                       时间格式为 HH:mm (24 小时时间),例如,14:50 表示 2:50 PM

                       这不适用于计划类型: ONSTART、
                       ONLOGON, ONIDLE, ONEVENT.

    /DU   duration     指定运行任务的持续时间。
                       时间格式为 HH:mm。这不适用于 /ET 和
                       计划类型: ONSTART, ONLOGON, ONIDLE, ONEVENT.
                       对于 /V1 任务,如果已指定 /RI,则持续时间默认值为
                       1 小时。

    /K                 在结束时间或持续时间终止任务。
                       这不适用于计划类型: ONSTART、
                       ONLOGON, ONIDLE, ONEVENT.
                       必须指定 /ET 或 /DU。

    /SD   startdate    指定运行任务的第一个日期。
                       格式为 yyyy/mm/dd。默认值为
                       当前日期。这不适用于计划类型: ONCE、
                       ONSTART, ONLOGON, ONIDLE, ONEVENT.

    /ED   enddate      指定此任务运行的最后一天的日期。
                       格式是 yyyy/mm/dd。这不适用于计划类型:
                        ONCE、ONSTART、ONLOGON、ONIDLE。

    /EC   ChannelName  为 OnEvent 触发器指定事件通道。

    /IT                仅有在 /RU 用户当前已登录且
                       作业正在运行时才可以交互式运行任务。
                       此任务只有在用户已登录的情况下才运行。

    /NP                不储存任何密码。任务以给定用户的身份
                       非交互的方式运行。只有本地资源可用。

    /Z                 标记在最终运行完任务后删除任务。

    /XML  xmlfile      从文件的指定任务 XML 中创建任务。
                       可以组合使用 /RU 和 /RP 开关,或者在任务 XML 已包含
                       主体时单独使用 /RP。

    /V1                创建 Vista 以前的平台可以看见的任务。
                       不兼容 /XML。

    /F                 如果指定的任务已经存在,则强制创建
                       任务并抑制警告。

    /RL   level        为作业设置运行级别。有效值为
                       LIMITED 和 HIGHEST。默认值为 LIMITED。

    /DELAY delaytime   指定触发触发器后延迟任务运行的
                       等待时间。时间格式为
                       mmmm:ss。此选项仅对计划类型
                       ONSTART, ONLOGON, ONEVENT.

    /HRESULT          为获得更出色的故障诊断能力,处理退出代码
                       将采用 HRESULT 格式。

    /?                 显示此帮助消息。

修改者: 按计划类型的 /MO 开关的有效值:
    MINUTE:  1 到 1439 分钟。
    HOURLY:  1 - 23 小时。
    DAILY:   1 到 365 天。
    WEEKLY:  1 到 52 周。
    ONCE:    无修改者。
    ONSTART: 无修改者。
    ONLOGON: 无修改者。
    ONIDLE:  无修改者。
    MONTHLY: 1 到 12,或
             FIRST, SECOND, THIRD, FOURTH, LAST, LASTDAY。

    ONEVENT:  XPath 事件查询字符串。
示例:
    ==> 在远程机器 "ABC" 上创建计划任务 "doc",
        该机器每小时在 "runasuser" 用户下运行 notepad.exe。

        SCHTASKS /Create /S ABC /U user /P password /RU runasuser
                 /RP runaspassword /SC HOURLY /TN doc /TR notepad

    ==> 在远程机器 "ABC" 上创建计划任务 "accountant",
        在指定的开始日期和结束日期之间的开始时间和结束时间内,
        每隔五分钟运行 calc.exe。

        SCHTASKS /Create /S ABC /U domain\user /P password /SC MINUTE
                 /MO 5 /TN accountant /TR calc.exe /ST 12:00 /ET 14:00
                 /SD 06/06/2006 /ED 06/06/2006 /RU runasuser /RP userpassword

    ==> 创建计划任务 "gametime",在每月的第一个星期天
        运行“空当接龙”。

        SCHTASKS /Create /SC MONTHLY /MO first /D SUN /TN gametime
                 /TR c:\windows\system32\freecell

    ==> 在远程机器 "ABC" 创建计划任务 "report",
        每个星期运行 notepad.exe。

        SCHTASKS /Create /S ABC /U user /P password /RU runasuser
                 /RP runaspassword /SC WEEKLY /TN report /TR notepad.exe

    ==> 在远程机器 "ABC" 创建计划任务 "logtracker",
        每隔五分钟从指定的开始时间到无结束时间,
        运行 notepad.exe。将提示输入 /RP
        密码。

        SCHTASKS /Create /S ABC /U domain\user /P password /SC MINUTE
                 /MO 5 /TN logtracker
                 /TR c:\windows\system32\notepad.exe /ST 18:30
                 /RU runasuser /RP

    ==> 创建计划任务 "gaming",每天从 12:00 点开始到
        14:00 点自动结束,运行 freecell.exe。

        SCHTASKS /Create /SC DAILY /TN gaming /TR c:\freecell /ST 12:00
                 /ET 14:00 /K
    ==> 创建计划任务“EventLog”以开始运行 wevtvwr.msc
        只要在“系统”通道中发布事件 101

        SCHTASKS /Create /TN EventLog /TR wevtvwr.msc /SC ONEVENT
                 /EC System /MO *[System/EventID=101]
    ==> 文件路径中可以加入空格,但需要加上两组引号,
        一组引号用于 CMD.EXE,另一组用于 SchTasks.exe。用于 CMD
        的外部引号必须是一对双引号;内部引号可以是一对单引号或
        一对转义双引号:
        SCHTASKS /Create
           /tr "\'c:\program files\internet explorer\iexplorer.exe\'
           \"c:\log data\today.xml\"" ...
..................................................................................................................................................................

 
本文备注:
    1. 本文主要一定电脑基础知识的朋友和电脑爱好者参考和交流,因为普通电脑使用者实现以上操作有些困难。
    2. 了解"任务计划”,请参考: http://baike.baidu.com/view/1757637.htm
    3. 心得:
      1. 学习任何知识都需要耐心,而兴趣是最好的老师,尽管它只起到了引导作用。
      2. 有付出一定有回报,只是我们没法确定回报的具体时间。
      3. 自学的知识永远是最巩固的。
      4. 纸上得来终觉浅,绝知此事要躬行。
    4. 对于QQ空间日志文本编辑器困难使用的问题,我已有了很好的解决方案:
      1. 在EverNote客户端编写文章,完成后点击【分享】下拉选项中的【复制笔记地址到黏贴板】。如下图所示:


      2. 在浏览器中打开此网址(你需要一个Evernote账户),并复制网页上显示的内容到QQ空间日志文本剪辑器的输入框中。
      3. 进行少量修改,即可大致满意。
参考网站:
  1. Windows帮助:http://support.microsoft.com/kb/814596/zh-cn
  2. 提示我在"schtasks"中对指定程序进行参数传递的实现:http://bbs.ednchina.com/BLOG_ARTICLE_3011221.HTM