VBスクリプトの実行に時間制限を追加する方法

今更ながらでお恥ずかしい限りですが、VBスクリプトに起動時間の制限をかける方法です。
とある処理を実行する際に、時間制限をかけなければならなくなりまして、何かいい方法無いかと調べてみたら、標準で対応していたようでした。
Timeoutプロパティすっかり見落としていました・・・。

Windows Vista以降のタスクスケジューラや、Windowsログイン時のログインスクリプトに混ぜて使うと有効かなと思います。

Timeoutを利用したスクリプトは時間いっぱいになると以下のようなメッセージを表示して強制的に終了します。

かなりスクリプトがメモになっていますが、以下のような感じで時間制限がスクリプトに適用できます。

スクリプト “hogehoge.vbs” の実行時間が制限時間を超えました。
スクリプトの実行は中止されました。

もちろん処理途中のものも全て終了してしまいますが、どうしても一定時間で終了させたい処理なんかがある場合には有効だと思います。

Option Explicit

'スクリプトが実行出来る上限秒数を設定する。(1=1秒)
WScript.Timeout = 2

'コマンドプロンプトを利用してPINGをpnpk.netに対して実行します。
Call Command_EXEC("%comspec% /c ping pnpk.net")


Wscript.Echo "おわり"

Function Command_EXEC(strCommand)
	Dim WshShell
	Dim objExec

	Set WshShell = WScript.CreateObject("WScript.Shell")
	Set objExec = WshShell.Exec(strCommand)
	
'画面非表示で処理する場合はこちらを利用
'	Do While objExec.Status = 0
'		WScript.Sleep 1000
'		Wscript.Echo objExec.Status
'	Loop
	
'画面に表示させる場合にはこちらを利用
	Do Until objExec.StdOut.AtEndOfStream
		Wscript.Echo objExec.StdOut.ReadLine
	Loop
	
'	If Err.Number <> 0 Then
'		Wscript.Echo Err.Number
'	End If
End Function

久しぶりのVBスクリプトですが、しょぼい内容で申し訳ないです。

また、VBスクリプト実行時の引数として//T:nnを指定しても実行に時間制限を設けることが出来ます。

Cscript hogehoge.vbs //t:10

1 COMMENT

Tweets that mention VBスクリプトの実行に時間制限を追加する方法 - http://pnpk.net -- Topsy.com

[…] This post was mentioned on Twitter by Kenji Urushima, connect24h. connect24h said: http://pnpk.net – VBスクリプトの実行に時間制限を追加する方法 | http://pnpk.net http://bit.ly/fbsT6U […]

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です