WScript のVBScriptやJScriptをVisual Stuioを使ってデバッグする方法


はじめに

VBScriptをデバッグしようと以下の記事を参考に作業したのですが、うまくいかずハマったので最後にステップ実行までたどり着いた方法を紹介します。
VBSをVisualStuioで編集&デバッグする方法
Visual StudioでClassic ASP(VBScript)をデバッグする

以降この記事はVBScriptについて記載しますがJScriptでも同様にデバッグが行えます。

手順1

1. テストしたいVBScriptを作成します

2. Visual Stuioを管理者権限起動します
管理者権限で実行しないとデバッグ出来ませんでした。
2020.08.01 追記
管理者権限でなくても実行できるようです。
うまくいかない時は、管理者権限で実行してみてください。

3. 作成したVBScriptを開きます
Visual Stuio2019では起動直後の画面で「ローカルフォルダを開く」を選択し、テストしたいスクリプトファイルのフォルダを選択後、「ソルーションエクスプローラー」でテストしたいスクリプトファイルを選択。

4. 以下のバッチファイルを作成
テキストエディタで以下の内容を編集し、拡張子batで保存する
Z:\test.vbsの部分はテストするスクリプトファイル名に変更してください。

wscript.exe Z:\test.vbs //x

理由は、デバッグオプション/x をつけて実行させるためです
wscriptのオプションについては以下のサイトを参照ください。
https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/wscript

5. 作成したバッチファイルを実行
以下の画面が表示されたら、先に起動させたVisual Stuioを選択し、[OK]をクリック

6. Visual Stuioのソースの先頭行でコードがブレークすればデバッグOK

手順2(プロセスにアタッチする方法)

こちらの方法は、万一手順1でうまくいかなかった場合にお試しください。

1.~4. までは手順1と同様

5. ファイルの先頭に以下のコードを追加し保存、また、直後の行にブレークポイントを設定

WScript.Echo("")
'JScriptの場合は
WScript.Echo("");

理由は、デバッグ時にプロセスにアタッチ出来るようにコードを終了させずに待機させるためです。

6. 先に作成したバッチファイルを実行
以下の画面で[Cancel]をクリック

7. プロセスにアタッチする
Visual Stuioのメニューから[デバッグ]→[プロセスにアタッチ]
次の画面でプロセスからwscript.exeを選択し、[アタッチ]をクリック

8. WScript.Echo("") によってポップアップしているダイアログを閉じる
9. Visual Stuioに設定したブレークポイントでコードがブレークすればデバッグOK