at
适用范围:Windows Server 2022、Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows Server 2012
将命令和程序计划在指定的时间和日期在计算机上运行。 仅当计划服务正在运行时,才能使用 at。 如果使用 at 时不带参数,则会列出已计划的命令。 若要运行此命令,您必须是本地 Administrators 组的成员。
语法
at [\computername] [[id] [/delete] | /delete [/yes]]
at [\computername] <time> [/interactive] [/every:date[,...] | /next:date[,...]] <command>
参数
参数 | 说明 |
---|---|
\<computername\> |
指定远程计算机。 如果省略此参数,则 at 将计划本地计算机上的命令和程序。 |
<id> |
指定分配给已计划命令的标识号。 |
/delete | 取消已计划的命令。 如果省略 ID,将取消计算机上的所有已计划的命令。 |
/yes | 删除计划事件时,对来自系统的所有查询回答“是”。 |
<time> |
指定要运行命令的时间。 时间 24 小时表示法表示(即从 00:00(午夜)到 23:59),格式为“小时:分钟”。 |
交互 | 允许命令与在命令运行时登录的用户的桌面进行交互。 |
间隔: | 在每周或每月的每个指定日(例如,每个星期四或每月的第三天)运行命令。 |
<date> |
指定要运行命令的日期。 你可以指定一周中的一天或多天(即,键入 M、T、W、Th、F、S、Su),也可以指定一个月中的一天或多天(即,键入 1 到 31)。 用逗号分隔多个日期条目。 如果省略 date,则 at 使用该月的当前日期。 |
next: | 在下一个当天日期(例如,下个星期四)运行命令。 |
<command> |
指定要运行的 Windows 命令、程序(即.exe 或.com 文件)或批处理程序(即.bat 或.cmd 文件)。 当命令需要路径作为参数时,请使用绝对路径(即以驱动器号开头的整个路径)。 如果该命令位于远程计算机上,请为服务器和共享名称指定通用命名约定 (UNC) 表示法,而不是远程驱动器号。 |
/? | 在命令提示符下显示帮助。 |
备注
在运行命令之前,此命令不会自动加载 cmd.exe. 如果运行的不是可执行 (.exe) 文件,则必须在命令的开头显式加载 cmd.exe,如下所示:
cmd /c dir > c:\test.out
如果在没有命令行选项的情况下使用此命令,则计划任务将显示在格式类似于以下内容的表中:
Status ID Day time Command Line OK 1 Each F 4:30 PM net send group leads status due OK 2 Each M 12:00 AM chkstor > check.file OK 3 Each F 11:59 PM backup2.bat
如果在此命令中包含标识号 (ID),则只有单个条目的信息以类似于以下的格式显示:
Task ID: 1 Status: OK Schedule: Each F Time of Day: 4:30 PM Command: net send group leads status due
计划某个命令(尤其是具有命令行选项的命令)后,可键入不带任何命令行选项的 at 来检查命令语法是否正确。 如果“命令行”列中的信息不正确,请删除该命令并重新键入。 如果仍然不正确,请重新键入命令并减少命令行选项的数量。
使用 at 计划的命令将作为后台进程运行。 输出不会显示在计算机屏幕上。 要将输出重定向到文件,请使用重定向符号
>
。 如果将输出重定向到文件,则无论在命令行还是在批处理文件中使用 at,都需要在重定向符号之前使用转义符号^
。 例如,要将输出重定向到 output.txt,请键入:at 14:45 c:\test.bat ^>c:\output.txt
执行命令的当前目录是 systemroot 文件夹。
如果在调度命令运行后更改了系统时间,请通过键入不带命令行选项的 at,从而将 at 计划程序与修改后的系统时间同步。
计划的命令存储在注册表中。 因此,即使重新启动计划服务,计划的任务也不会丢失。
请勿将重定向驱动器用于访问网络的计划作业。 计划服务可能无法访问重定向的驱动器,如果在计划任务运行时有其他用户登录,则重定向的驱动器可能不存在。 相反,请对计划的作业使用 UNC 路径。 例如:
at 1:00pm my_backup \\server\share
不要使用以下语法,其中 x: 是用户建立的连接:
at 1:00pm my_backup x:
如果计划一个使用驱动器号连接到共享目录的 at 命令,请在使用完驱动器后包括 at 命令以断开驱动器的连接。 如果驱动器未断开连接,则在命令提示符下将无法使用分配的驱动器号。
默认情况下,使用此命令计划的任务将在 72 小时后停止。 可以修改注册表以更改此默认值。
修改注册表
注意
不正确地编辑注册表可能会对系统造成严重损坏。 在更改注册表之前,应备份计算机上任何有价值的数据。
启动注册表编辑器 (regedit.exe)。
在注册表中找到并单击以下项:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Schedule
在“编辑”菜单上,单击“添加值”,然后添加以下注册表值:
值名称。 atTaskMaxHours
数据类型。 reg_DWOrd
基数。 小数
值数据:0。 “数值数据”字段中的值为 0 表示没有限制,并且不会停止。 从 1 到 99 的值表示小时数。
可以使用“任务计划”文件夹查看或修改使用此命令创建的任务的设置。 使用此命令计划任务时,该任务将列在“任务计划”文件夹中,其名称如下:at3478。 但是,如果通过“任务计划”文件夹修改任务,则该任务将升级为正常的计划任务。 该任务对 at 命令不再可见,并且 at 帐户设置不再适用于该任务。 你必须明确输入任务的用户帐户和密码。
示例
要显示在 Marketing 服务器上计划的命令列表,请键入:
at \\marketing
要了解 Corp 服务器上标识号为 3 的命令的详细信息,请键入:
at \\corp 3
要计划在上午 8:00 在 Corp 服务器上运行 net share 命令,并将列表重定向到 Maintenance 服务器,请在 Reports shared 目录中的 Corp.txt 文件中键入:
at \\corp 08:00 cmd /c net share reports=d:\marketing\reports >> \\maintenance\reports\corp.txt
要在每五天的午夜将营销服务器的硬盘驱动器备份到磁带驱动器,请创建名为 archive.cmd 的批处理程序(其中包含备份命令),然后计划运行该批处理程序,请键入:
at \\marketing 00:00 /every:5,10,15,20,25,30 archive
要取消当前服务器上计划的所有命令,请按如下所示清除 at 计划信息:
at /delete
要运行不是可执行 (.exe) 的命令,请在命令前加上 cmd /c 以加载 cmd.exe,如下所示:
cmd /c dir > c:\test.out
相关链接
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈