2014年05月22日


VBScript : 10秒毎に処理を実行する( 時刻指定も可能 )

コマンドプロンプトで実行しておいて、終了はコマンドプロンプトを閉じます。実行される処理は、非同期では無いので外部のスクリプトをプロセスとして実行するといいでしょう。どうしても、同一スクリプト内で実行したい場合は、Cron の代替え : VBScript でタイマー処理 を参照して下さい
' このセクションは、cscript.exe で処理を強制させるものです
str = WScript.FullName
str = Right( str, 11 )
str = Ucase( str )
if str <> "CSCRIPT.EXE" then
	str = WScript.ScriptFullName
	Set WshShell = CreateObject( "WScript.Shell" )
	Call WshShell.Run( "cmd.exe /c cscript.exe """ & str & """ & pause", 3 )
	WScript.Quit
end if

Set obj = GetObject("winmgmts:\\.\root\cimv2")
Set objMonitor = obj.ExecNotificationQuery( _
	"select * from __InstanceModificationEvent " & _
	"where TargetInstance isa 'Win32_LocalTime' " & _
	" and (TargetInstance.Second = 0" & _
	" or TargetInstance.Second = 10" & _
	" or TargetInstance.Second = 20" & _
	" or TargetInstance.Second = 30" & _
	" or TargetInstance.Second = 40" & _
	" or TargetInstance.Second = 50)" _
)

Do


	Set objLatestEvent = objMonitor.NextEvent 

	' ここに処理を記述
	Wscript.Echo Now()

Loop

以下のプロパティが使用できます
class Win32_LocalTime : Win32_CurrentTime
{
  uint32 Day;
  uint32 DayOfWeek;
  uint32 Hour;
  uint32 Milliseconds;
  uint32 Minute;
  uint32 Month;
  uint32 Quarter;
  uint32 Second;
  uint32 WeekInMonth;
  uint32 Year;
};



タグ:VBScript WMI
posted by at 2014-05-22 20:40 | WMI | このブログの読者になる | 更新情報をチェックする