[タスク登録]
毎週土曜日と日曜日の10時30分に C:\Temp\Test.bat を実行するようにタスク登録をします。
曜日の指定はOSによって変わるみたいです。
うまく曜日の指定ができないときは、日本時間で指定している部分(例では -900 の部分)を変更してみてください。
AT コマンドと同等の処理です。
WindowsXP 以降であれば、タスクスケジューラを使用したほうが良いと思います。
ただ、VBScript からだと標準の機能だけでは API を操作できません。
WScript.Shell などで、コマンドを実行する方法もありますが・・・
↓のような感じで(/F /Z オプションは WindowsXP にはありません)
schtasks.exe /Create /S:. /RU:administrator /RP:password /SC:ONCE /TN:"Test Task" /ST:1030 /TR:"C:\Temp\Test.bat" /F /Z
【ソースコード】
[tips0200.vbs]
Option Explicit
On Error Resume Next
Dim strServerName
Dim strCommand
Dim strStartTime
Dim objSchJob
Dim lngRetCode
Dim lngJobId
strServerName = "localhost"
strCommand = "C:\Temp\Test.bat"
strStartTime = "********103000.000000-900"
Set objSchJob = GetObject("winmgmts:" & _
"{impersonationLevel=impersonate}!\\" & _
strServerName & "\root\cimv2").Get("Win32_ScheduledJob")
If Err.Number = 0 Then
lngRetCode = objSchJob.Create(strCommand, strStartTime, _
True, 1 OR 64, , , lngJobId)
If lngRetCode = 0 Then
WScript.Echo strCommand & "を登録しました。" & _
"(JobID=" & lngJobId & ")"
Else
WScript.Echo "タスクの登録に失敗しました。(" & lngRetCode & ")"
End If
Else
WScript.Echo "エラー: " & Err.Description
End If
Set objSchJob = Nothing
【実行結果】
C:\> cscript //NoLogo tips0200.vbs
C:\Temp\Test.batを登録しました。(JobID=1)