テキストファイルを使ったプログレス表示スクリプトを改良
ただ、Windows上で実行できるがゆえに、プログラムの現在状態がわからなくて非常に厄介。処理がどこまで進んでいるのか、変数の値がどうなってるかを調べるのはちょっとめんどくさい。
以下の記事では、プログラムの進捗状況をテキストファイル名で表現するソースコードを公開した。
VBScriptで進捗状況を表示する方法~プログレスファイル出力~
今回は、テキストファイルの中身もデバッグ用に活用できるように改良した。
変更点としては、
引数として、ファイル名とテキストを渡せるように変更。
writePrgrsFileを直接呼び出すと、進捗表示用のファイルが増殖し、各状態でのデバッグテキストを閲覧できる。
ちなみに、プログラムが正常終了すると、テキストファイルは全削除される。
以下ソース。
'-----------------------------------------------------------'プログレスバー
sub outputProgress(text)
call deletePrgrsFile
if text <> "" then call makePrgrsFile(text)
end sub
Sub makePrgrsFile(text)
dim myPath : myPath = Wscript.scriptFullname
dim yPos : yPos = instrrev(myPath , "\")
dim strFile: strFile = left(myPath,yPos) & "Args:" & text & ".prgrs"
dim objFS: Set objFS = CreateObject("Scripting.FileSystemObject")
dim obfFile : Set obfFile = objFS.CreateTextFile(strFile) ' ファイル作成
set objFS = nothing
set obfFile = nothing
end sub
'-----------------------------------------------------------'プログレスバー2
sub outputProgress2(fname,text)
call deletePrgrsFile
if text <> "" then call writePrgrsFile(fname,text)
end sub
Sub writePrgrsFile(fname,text)
dim myPath : myPath = Wscript.scriptFullname
dim yPos : yPos = instrrev(myPath , "\")
dim strFile: strFile = left(myPath,yPos) & "Args:" & fname & ".prgrs"
dim objFS: Set objFS = CreateObject("Scripting.FileSystemObject")
dim obfFile : Set obfFile = objFS.CreateTextFile(strFile) ' ファイル作成
obfFile.WriteLine(text)
obfFile.close
set objFS = nothing
set obfFile = nothing
end sub
'-----------------------------------------------------------'共通処理
sub deletePrgrsFile()
on error resume next
dim myPath : myPath = Wscript.scriptFullname
dim yPos : yPos = instrrev(myPath , "\")
dim tarFile:tarFile = left(myPath,yPos) & "*.prgrs"
with CreateObject("Scripting.FileSystemObject")
.DeleteFile tarFile
end with
end sub