(for Internet Explorer)
← ▼ ▲
↑
デバッグ用ファイル出力
Sub main()
W_init
a = 1
W "a:" & a
W_finish
End Sub
main
' Debug Tool -----------------------------------------------------------
Sub W_init()
Set fs = WScript.CreateObject( "Scripting.FileSystemObject" )
On Error Resume Next
fs.DeleteFile "c:\wsh_dbg.txt"
On Error Goto 0
Set fs = Nothing
End Sub
Sub W(var)
Set fs = WScript.CreateObject( "Scripting.FileSystemObject" )
Set f = fs.OpenTextFile( "c:\wsh_dbg.txt", 8, True )
f.WriteLine( var )
Set f = Nothing
Set fs = Nothing
End Sub
Sub W_finish()
Set fs = CreateObject( "Scripting.FileSystemObject" )
Set f = Nothing
On Error Resume Next
Set f = fs.GetFile( "c:\wsh_dbg.txt" )
On Error Goto 0
If Not f Is Nothing Then
Set sh = WScript.CreateObject("WScript.Shell")
sh.Run "notepad.exe c:\wsh_dbg.txt"
Set sh = Nothing
End If
Set f = Nothing
Set fs = Nothing
End Sub
printf に相当するものは、 WScript.Echoです。
← ▼ ▲
動作ログ
Set fs = CreateObject( "Scripting.FileSystemObject" )
Set logg = fs.CreateTextFile( Wscript.ScriptFullName + ".log", True, False )
スクリプトは、バッチファイルのように動作中の様子を確認できません。
動作の様子をファイルに記録するコードを示します。
logg.WriteLine "...ing : " + s
logg.Close: fs.DeleteFile Wscript.ScriptFullName + ".log"
初期化：
後始末：
記録
動作の様子を、スクリプトファイルの名前＋".log" のファイル名で、記録します。
後始末まで到達したら、動作ログファイルは削除されます。
途中でエラーになったら、ファイルは残ります。
← ▲
エラーメッセージ、トラブルシューティング
識別子がありません。
800A03F2
識別子が予約語になっているかもしれません。
800A01B6
(438)
オブジェクトでサポートされていないプロパティまたはメソッドです。
800A01F4
この変数は宣言されていません
Dim で宣言してください
オブジェクトを代入する命令 "Set" が記述されていません
例： Set obj = FuncA()
引数の数が一致していません。
または不正なプロパティを指定しています。
引数の数があっているようなら、
Execute
したときにプロシージャの定義
が上書きされた可能性があります。 大文字小文字が違っても上書きします。
構文エラーです。
800A03EA
行番号が 0 のときは、Execute でロードした
問題のある VBS ファイルをダブルクリックすれば
問題のある行番号が分かります。
800A01C2
800A0400
ステートメントがありません。
→ 800A03EA
↓ エラーメッセージに表示されるエラーコード。 800A0000 + Err.Number
80070002
カレントディレクトリに設定しようとしたパスはフォルダではありません
ファイルは見つかりません。
800A0001
未定義のエラーです
.vbs のコードで発生させたユーザ定義エラー（エラーコード=1）です。
未知の実行時エラーです
→ エラーを発生させる
800A004C
(76)
→ 定義済みエラー番号
パスが見つかりません。
E_FileNotExist
800A0035
(53)
ファイルが見つかりません。
E_PathNotFound
書き込みできません。
800A0046
(70)
E_WriteAccessDenied
800A003E
(62)
ファイルの最後を超えた入力を行おうとしました。
E_EndOfFile
→ FileSystemObject::OpenTextFile
→ FileSystemObject::OpenTextFile
既に同名のファイルが存在しています。
800A003A
(58)
E_AlreadyExist
→ FileSystemObject::CreateTextFile
関連
E_WIN32_FILE_NOT_FOUND
→ vbslib エラーコード
→ Windows エラーコード
→ エラーメッセージの標準書式 (vbslib)
・フォルダと同じ名前のファイルを作ろうとすると、このエラーが発生します。
（ファイルと同じ名前のフォルダを作ろうとすると、エラー(58)になります。）
・同じファイルを複数開くことはできません。
開いてすぐ閉じるコードをばらまくことで、同じファイルを開いている別の場所を
探してください。
g_fs.OpenTextFile "a.txt", 8, True, -2 '[DEBUGGING]
a.txt
・ディスク・アクセスの負荷が高いときも、このエラーが発生します。
→ IsWriteAccessDenied
・ファイルと同じ名前のフォルダを作ろうとすると、このエラーになります。
→ デバッガの不具合
8007xxxx
→ Windows エラーコード (WinError.h)
8007007E
環境変数が必要な処理において、環境変数が設定されていない（？）