从 Windows 命令行安排作业?

15 windows scheduled-tasks command-line

在 Linux 上有cron job 和at job。有没有办法从 Windows 上的命令行安排作业?

任务计划程序GUI是不是我追求的。我必须修改脚本以在特定条件下安排事件......所以必须有一种方法可以从命令行调用它。

spl*_*tne 15

使用schtasks命令。它有比at命令更多的选项,还有一些不错的选项,比如/mo LASTDAY本月的最后一天:

schtasks安排命令和程序定期或在特定时间运行。从计划中添加和删除任务,按需启动和停止任务,以及显示和更改计划任务。

句法:

schtasks /create /tn TaskName /tr TaskRun /sc schedule [/mo 修饰符]
         [/d day] [/m month[,month...] [/i IdleTime] [/st StartTime] 
         [/sd StartDate] [/ed EndDate] [/s 计算机 [/u 
         [域\]用户 /p 密码]] 
         [/ru {[域\]用户 | "系统"} [/rp 密码]] /?


Joh*_*n T 13

Windows 也有一个“在职”。虽然语法有点不同。

C:\Documents and Settings\Administrator>at /?
AT 命令调度命令和程序在计算机上运行
指定的时间和日期。Schedule 服务必须正在运行才能使用
AT 命令。

AT [\\计算机名] [ [id] [/DELETE] | /删除[/是]]
在 [\\计算机名] 时间 [/INTERACTIVE]
    [ /EVERY:date[,...] | /NEXT:date[,...]] "命令"

\\computername 指定远程计算机。命令被安排在
                   如果省略此参数,则为本地计算机。
id 是分配给预定的标识号
                   命令。
/delete 取消预定的命令。如果省略 id,则所有
                   计算机上的预定命令被取消。
/yes 与取消所有作业命令一起使用
                   需要确认。
time 指定命令运行的时间。
/interactive 允许作业与用户的桌面交互
                   谁在作业运行时登录。
/every:date[,...] 在一周的每个指定日期运行命令或
                   月。如果省略日期,则为当月的当前日期
                   假设。
/next:date[,...] 在下一次出现时运行指定的命令
                   天(例如,下周四)。如果省略日期,则
                   假定为当月的当前日期。
“命令”是 Windows NT 命令,或要运行的批处理程序。

例子:

at 9:00 /interactive notepad.exe
Run Code Online (Sandbox Code Playgroud)

这将导致记事本在早上 9:00 以交互方式为用户打开。

  • 正如我们所说,“at”已被弃用。“schtasks”是现在要走的路。也许你可以改变正确的答案。 (3认同)