デバッグログを出力するVBScript
2022年05月22日
VBScriptを作ってると、デバッグ機能が欲しくなる。
開発環境がなくてメモ帳(otbedit)ベースなので、できることはメッセージボックスで表示。
けど、ループ中にメッセージボックス入れようものなら、
毎回メッセージボックスが出てたまらん。
てな理由からログファイルを出力するVBScriptを作ってみた。
記事を書くときに調べてみたら、有償ソフトでデバッグ環境あんのね。。。
無償トライアル版もあるらしい。今度使ってみよう。
https://www.depthbomb.net/?p=2708#toc6
気を取り直して、デバッグログを出力する仕様について
VBAだとdebug.print(Text)の形式だったので、
DebugText(Text)でログファイルにTextを吐き出す仕様にした。
出力先は定数で設定可能に。して、
該当のフォルダやファイルがなければ
call makeDirEX(Path)で自動的に作成。
実行中のスクリプトファイル名と開始日時を取得して
Textと合わせて書き込む。
ファイル名取得はここを参考に。てか1行かよ!
https://bayashita.com/p/entry/show/174
以下、ソース。
開発環境がなくてメモ帳(otbedit)ベースなので、できることはメッセージボックスで表示。
けど、ループ中にメッセージボックス入れようものなら、
毎回メッセージボックスが出てたまらん。
てな理由からログファイルを出力するVBScriptを作ってみた。
記事を書くときに調べてみたら、有償ソフトでデバッグ環境あんのね。。。
無償トライアル版もあるらしい。今度使ってみよう。
https://www.depthbomb.net/?p=2708#toc6
気を取り直して、デバッグログを出力する仕様について
VBAだとdebug.print(Text)の形式だったので、
DebugText(Text)でログファイルにTextを吐き出す仕様にした。
出力先は定数で設定可能に。して、
該当のフォルダやファイルがなければ
call makeDirEX(Path)で自動的に作成。
実行中のスクリプトファイル名と開始日時を取得して
Textと合わせて書き込む。
ファイル名取得はここを参考に。てか1行かよ!
https://bayashita.com/p/entry/show/174
以下、ソース。
Option Explicit
'デバッグログを出力v01
debugtext("test")
sub DebugText(Text)
const fName = "VBSdebug.log"
const Path = "C:\VBScript\debug\"
call makeDirEX(Path)
dim strNow: strNow = "[" & now & "]"
dim Scriptname : Scriptname = "[" & WScript.ScriptName & "] "
call AppendText(Path & fName,strNow & Scriptname & Text & chr(10))
end sub
Sub makeDirEX(Path)
With CreateObject("Scripting.FileSystemObject")
if right(Path,1)="\" then Path = left(Path,len(Path)-1) '\削除
Dim tmp, j , strDir
tmp = Split(Path, "\")
For j = 0 To UBound(tmp)
If j = 0 Then
strDir = strDir & tmp(j) & "\"
Else
strDir = strDir & tmp(j) & "\"
If .FolderExists(strDir) Then
'あればなにもしない
Else 'なければ作る
.CreateFolder strDir
End If
End If
Next
End With
End Sub
sub AppendText(strFullname,Text)
dim FSO: Set FSO = CreateObject("Scripting.FileSystemObject")
Dim wMode:wMode = 2 '2:書き込みモード、8:追記モード(新規不可)
if FSO.FileExists(strFullname) = true then wMode = 8
With FSO.OpenTextFile(strFullname, wMode, True)
.Write Text
.Close
End With
set FSO = nothing
end sub
PR
Comment