window下如何使用命令行创建schedule task(计划任务)
Windows /javasky
发表于2008-07-16, 14:55
最近遇到了一个客户, 这个客户是从Unix/Linux阵营过来的, 不太熟悉windows平台下面的窗口操作, 这次他的要求是希望能像crontab一样使用 windows 下面的 计划任务, 经过search之后, 发现可以这么使用(schtasks )这个命令行来创建:
Schtasks
安排命令和程序定期运行或在指定时间内运行。从计划表中添加和删除任务,按需要启动和停止任务,显示和更改计划任务。
若要查看该命令语法,请单击以下命令:
参数
- /tn TaskName
- 指定任务的名称。
- /tr TaskRun
- 指定任务运行的程序或命令。键入可执行文件、脚本文件或批处理文件的完全合格的路径和文件名。如果忽略该路径,SchTasks.exe 将假定文件在 Systemroot\System32 目录下。
- /sc schedule
-
指定计划类型。有效值为 MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY、ONCE、ONSTART、ONLOGON、ONIDLE。
值 说明 MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY 指定计划的时间单位。 ONCE 任务在指定的日期和时间运行一次。 ONSTART 任务在每次系统启动的时候运行。可以指定启动的日期,或下一次系统启动的时候运行任务。 ONLOGON 每当用户(任意用户)登录的时候,任务就运行。可以指定日期,或在下次用户登录的时候运行任务。 ONIDLE 只要系统空闲了指定的时间,任务就运行。可以指定日期,或在下次系统空闲的时候运行任务。 - /mo modifier
-
指定任务在其计划类型内的运行频率。这个参数对于 MONTHLY 计划是必需的。对于 MINUTE、HOURLY、DAILY 或 WEEKLY 计划,这个参数有效,但也可选。默认值为 1。
计划类型 修饰符 说明 MINUTE 1 ~ 1439 任务每 n 分钟运行一次。 HOURLY 1 ~ 23 任务每 n 小时运行一次。 DAILY 1 ~ 365 任务每 n 天运行一次。 WEEKLY 1 ~ 52 任务每 n 周运行一次。 MONTHLY 1 ~ 12 任务每 n 月运行一次。 LASTDAY 任务在月份的最后一天运行。 FIRST、SECOND、THIRD、FOURTH、LAST 与 /d day 参数共同使用,并在特定的周和天运行任务。例如,在月份的第三个周三。 - /d dirlist
-
指定周或月的一天。只与 WEEKLY 或 MONTHLY 计划共同使用时有效。
计划类型 日期值 WEEKLY 可选项。有效值是 MON ~ SUN 和 * (每一天)。MON 是默认值。 MONTHLY 在使用 FIRST、SECOND、THIRD、FOURTH 或 LAST 修饰符 (/mo) 时,需要 MON ~ SUN 中的某个值。1 ~ 31 是可选的,只在没有修饰符或修饰符为 1 ~ 12 类型时有效。默认值是 1 (月份的第一天)。 - /m month[ , month...]
- 指定一年中的一个月。有效值是 JAN ~ DEC 和 * (每个月)。 /m 参数只对于 MONTHLY 计划有效。在使用 LASTDAY 修饰符时,这个参数是必需的。否则,它是可选的,默认值是 * (每个月)。
- /i InitialPageFileSize
- 指定任务启动之前计算机空闲多少分钟。键入一个 1 ~ 999 之间的整数。这个参数只对于 ONIDLE 计划有效,而且是必需的。
- /st StartTime
- 以 HH:MM:SS 24 小时格式指定时间。默认值是命令完成时的当前本地时间。 /st 参数只对于 MINUTE、HOURLY、DAILY、WEEKLY、MONTHLY 和 ONCE 计划有效。它只对于 ONCE 计划是必需的。
- /sd StartDate
- 以 MM/ DD/ YYYY 格式指定任务启动的日期。默认值是当前日期。 /sd 参数对于所有的计划有效,但只对于 ONCE 计划是必需的。
- /ed EndDate
- 指定任务计划运行的最后日期。此参数是可选的。它对于 ONCE、ONSTART、ONLOGON 或 ONIDLE 计划无效。默认情况下,计划没有结束日期。
- /s Computer
- 指定远程计算机的名称或 IP 地址(带有或者没有反斜杠)。默认值是本地计算机。
- /u [ domain\] user
- 使用特定用户帐户的权限运行命令。默认情况下,使用已登录到运行 SchTasks 的计算机上的用户的权限运行命令。
- /p password
- 指定在 /u 参数中指定的用户帐户的密码。如果使用 /u 参数,则需要该参数。
- /ru {[ Domain\] User | "System"}
-
使用指定用户帐户的权限运行任务。默认情况下,使用用户登录到运行 SchTasks 的计算机上的权限运行任务。
值 说明 [domain\}User? 指定用户帐户。 "System" 或 "" 指定操作系统使用的 NT Authority\System 帐户。 - /p Password
- 指定用户帐户的密码,该用户帐户在 /u 参数中指定。如果在指定用户帐户的时候忽略了这个参数,SchTasks.exe 会提示您输入密码而且不显示键入的文本。使用 NT Authority\System 帐户权限运行的任务不需要密码,SchTasks.exe 也不会提示索要密码。
- /?
- 在命令提示符显示帮助。
注释
XOX- SchTasks.exe 不验证程序文件的位置或用户帐户密码。如果没有为用户帐户输入正确的文件位置或正确的密码,任务仍然可以创建,但不会运行。另外,如果帐户的密码更改或过期,而且没有更改存储在任务中的密码,那么任务也不会运行。
- NT Authority\System 帐户没有交互式登录权限。用户看不到以系统权限运行的程序,不能与之交互。
- 每个任务只运行一个程序。但是,可以创建一个批处理文件来启动多个任务,然后计划一个任务来运行该批处理文件。
- 只要创建了任务就可对其测试。使用 run 操作来测试任务,然后从 SchedLgU.txt 文件 ( Systemroot\SchedLgU.txt ) 中查阅错误。
每个计划类型的语法和范例。
若要查看该命令语法,请单击以下命令:
范例
计划任务每天运行一次
下面的范例计划 MyApp 程序在每天的 8:00 A.M. 运行一次,直到 2001 年 12 月 31 日结束。由于它忽略了 /mo 参数,所以使用默认间隔 1 来每天运行命令。
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc daily /st 08:00:00 /ed 12/31/2001
计划任务每隔一天运行一次
下面的范例计划 MyApp 程序从 2001 年 12 月 31 日起每隔一天在 1:00 P.M. (13:00) 运行。命令使用 /mo 参数来指定两 (2) 天的间隔。
schtasks /create /tn "My App" /tr c:\apps\myapp.exe /sc daily /mo 2 /st 13:00:00 /sd 12/31/2001
更多范例
若要查看范例,请单击范例名称: