每周触发器示例 (脚本)

此脚本示例演示如何创建每周一上午 8:00 运行记事本的任务。 该任务包含一个每日触发器,该触发器指定任务何时运行,以及运行记事本的可执行作。

以下过程介绍如何计划任务,以在每周星期一上午 8:00 启动可执行文件。

安排记事本从每周一上午 8:00 开始

  1. 创建 TaskService 对象。 此对象允许在指定文件夹中创建任务。

  2. 获取任务文件夹并创建任务。 使用 TaskService.GetFolder 方法获取存储任务的文件夹,并使用 TaskService.NewTask 方法创建表示任务的 TaskDefinition 对象。

  3. 使用 TaskDefinition 对象定义有关任务的信息。 使用 TaskDefinition.Settings 属性定义用于确定任务计划程序服务如何执行任务和 TaskDefinition.RegistrationInfo 属性的设置,以定义描述任务的信息。

  4. 使用 TaskDefinition.Triggers 属性创建每周触发器。 此属性提供对用于创建触发器的 TriggerCollection 对象的访问。

    使用 TriggerCollection.Create 方法(指定要创建的触发器类型)创建每周触发器。

    设置 WeeklyTrigger.StartBoundary 属性以指定何时激活触发器以及运行任务的时间。 在此示例中,触发器于 2005 年 1 月 1 日激活,任务在上午 8:00 运行。

    设置 WeeklyTrigger.EndBoundary属性以指定何时停用触发器。 在此示例中,触发器在 2015 年 1 月 1 日停用。

    设置 WeeklyTrigger.DaysOfWeek 属性以指定任务运行星期几。 在此示例中,任务在星期一运行。

    设置 WeeklyTrigger.WeeksInterval属性以指定计划中的周之间的间隔。 在此示例中,任务每周运行一次。

  5. 使用 TaskDefinition.Actions 属性为要执行的任务创建作。 此属性提供对用于创建作的 ActionCollection 对象的访问权限。 使用 ActionCollection.Create 方法指定要创建的作的类型。 此示例使用 ExecAction 对象,该对象表示执行命令行作的作。

  6. 使用 TaskFolder.RegisterTaskDefinition 方法注册任务。 在此示例中,任务将在每周星期一上午 8:00 开始记事本。

以下 VBScript 示例演示如何在上午 8:00 计划每天执行记事本的任务。

'------------------------------------------------------------------
' This sample schedules a task to start on a weekly basis.
'------------------------------------------------------------------

' A constant that specifies a weekly trigger.
const TriggerTypeWeekly = 3
' A constant that specifies an executable action.
const ActionTypeExec = 0   


'********************************************************
' Create the TaskService object.
Set service = CreateObject("Schedule.Service")
call service.Connect()

'********************************************************
' Get a folder to create a task definition in. 
Dim rootFolder
Set rootFolder = service.GetFolder("\")

' The taskDefinition variable is the TaskDefinition object.
Dim taskDefinition
' The flags parameter is 0 because it is not supported.
Set taskDefinition = service.NewTask(0) 

'********************************************************
' Define information about the task.

' Set the registration info for the task by 
' creating the RegistrationInfo object.
Dim regInfo
Set regInfo = taskDefinition.RegistrationInfo
regInfo.Description = "Start Notepad weekly."
regInfo.Author = "Administrator"

' Set the task setting info for the Task Scheduler by
' creating a TaskSettings object.
Dim settings
Set settings = taskDefinition.Settings
settings.Enabled = True
settings.StartWhenAvailable = True
settings.Hidden = False

'********************************************************
' Create a weekly trigger. Note that the start boundary 
' specifies the time of day that the task starts, the 
' day-of-week specfies on what day of the week the task 
' runs, and the interval specifies what weeks the task runs.
Dim triggers
Set triggers = taskDefinition.Triggers

Dim trigger
Set trigger = triggers.Create(TriggerTypeWeekly)

' Trigger variables that define when the trigger is active 
' and the time of day that the task is run. The format of 
' this tims is YYYY-MM-DDTHH:MM:SS
Dim startTime, endTime

Dim time
startTime = "2006-05-02T08:00:00"  'Task runs at 8:00 AM
endTime = "2015-05-02T08:00:00"

WScript.Echo "startTime :" & startTime
WScript.Echo "endTime :" & endTime

trigger.StartBoundary = startTime
trigger.EndBoundary = endTime
trigger.DaysOfWeek = 1
trigger.WeeksInterval = 1    'Task runs every week.
trigger.Id = "WeeklyTriggerId"
trigger.Enabled = True

'***********************************************************
' Create the action for the task to execute.

' Add an action to the task to run notepad.exe.
Dim Action
Set Action = taskDefinition.Actions.Create( ActionTypeExec )
Action.Path = "C:\Windows\System32\notepad.exe"

WScript.Echo "Task definition created. About to submit the task..."

'***********************************************************
' Register (create) the task.

call rootFolder.RegisterTaskDefinition( _
    "Test Weekly Trigger", taskDefinition, 6, , , 3)

WScript.Echo "Task submitted."

使用任务计划程序