◆ [VBScript] デバッグ上手はプログラム上手2 ~dprintf():CScriptホストのみWScript.Echoを実行~
どーもボキです。

前回、CScriptホストでスクリプトを実行すれば、
WScript.Echoでデバッグメッセージを表示させても処理が中断されないことがわかった。

なら、ホストがCScriptのときだけ、
WScript.Echoを実行する関数を用意すれば、処理を中断せずデバッグできる。
あえて中断したいなら、そのときだけMsgBoxを使えばいい。

以下のdprintf()は、CScriptホストでの実行時のみWScript.Echoを実行する。
dprintf("ど")
dprintf("│")
dprintf("も")
dprintf("ボ")
dprintf("キ")
dprintf("で")
dprintf("す")



' -------------------------------------------------------------------------------
' 終了処理
If InStr(LCase(WSCript.FullName),"cscript") > 0 Then
WScript.StdOut.WriteLine WScript.ScriptFullName & " [終了]" ' メッセージ表示
WScript.StdIn.ReadLine ' ユーザの入力待ち
End If

' -------------------------------------------------------------------------------
' cscriptホストのみ、Echo実行
Sub dprintf(v)
Dim i,s
If InStr(LCase(WSCript.FullName),"cscript") = 0 Then Exit Sub ' WScriptなら出力なし

s = v
If VarType(v) >= vbArray Then
s = ""
For i = 0 to UBound(v)
s = s & "dprintf(" &i& ")=" & v(i) & vbCRLF
Next
End If
WScript.Echo s
End Sub
実行イメージ (WScriptホストの場合は、何も表示されない)
a0021757_0392745.gif



[PR]
by yozda | 2010-11-20 00:37 | プログラミング | Trackback | Comments(0)
トラックバックURL : http://yozda.exblog.jp/tb/11590495
トラックバックする(会員専用) [ヘルプ]
<< [VBScript] デバッグ... 迷子になったママへ >>