« タスクスケジューラのタスクをスクリプトから起動する。 | トップページ | PowerShellがあれば、文字コード変換も簡単です。 »

2010年1月21日 (木)

タスクスケジューラのタスクに引数を与えて起動する。

schtasksコマンドではできませんが、スクリプトからは可能です。

タスクの引数に、仮引数を、$(Arg0),$(Arg1),$(Arg2)...などと書いておけば、実引数に置き換えられます。
実引数に置き換わらなかった仮引数はそのまま残ります。

Set TaskService=CreateObject("Schedule.Service")
TaskService.Connect
Set Folder=TaskService.GetFolder("\")
Set Task=Folder.GetTask("hoge")
Task.Run "引数0"

VBScriptでは、String型の配列が作れないので渡せるのは1個の文字列です。

PowerShellなら、複数の文字列が渡せます。

$TaskService=New-Object -ComObject schedule.service
$TaskService.Connect()
$Folder=$TaskService.GetFolder("\")
$Task=$Folder.GetTask("hoge")
[String[]]$a="引数0","引数1","引数2"
$Task.Run($a)

« タスクスケジューラのタスクをスクリプトから起動する。 | トップページ | PowerShellがあれば、文字コード変換も簡単です。 »