- ベストアンサー
WSH(Windows Script Host)のデバックはどの様にするのですが。?
WSH(Windows Script Host)をデバックしたいのでいろいろ調べて Micrsoft Script Debaggerをインストールしました。 そして、コマンドプロンプトでstop行入りのhoge.vbsに対して、 「cscript.exe //X C:\hoge.vbs」及び「wscript.exe //X C:\hoge.vbs」を 実効しましたがデバッガは起動しませんでした。 (Micrsoft Script Debaggerの単独起動は確認済み) 他の方法でも結構ですので、皆さんのWSH(Windows Script Host)のデバックの 仕方を教えて下さい。 では、宜しくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 >Visual Studio 2005 スタンダード以上でWSHで1行ずつのステップインが出来るようですが何万も出す気がしないので。。。。 VS 2005 は、一応、フリーで凍結することになったはずです。ただし、有償版とは違いがありますので、少し、設定を変えなくてはならないはずです。有償版の値段も、Standard あたりなら、そんなには高くありません。今度、VS2008 になりましたら、フリーのほうも、またバージョンアップするはずです。ただ、私は、VS2005でWSHのチェックは試したことはありますが、良く分かりません。理由は、本来、Web のコードのチェックするためだと思うのです。 一応、VS 2005 は、持っていますが、使うのは、VB.Net だけです。他は、未だ、古いものを扱っています。 ある程度、VB系が詳しければ、エディタ一本で問題にはならないはずです。WSHは、VBAよりも遥かにレベルが高いです。私は、ほとんど、エディタ1本で作っています。ステップモードが出来ても、C言語エディタと同じで、あまり意味がないように思います。コードが読めないとダメなのですね。 それに、WMIをいじるのでは、レベルが高すぎます。最初に書いたかもしれまんせが、今のWSHのレベルは、VBとは分岐して、一人歩きしていますから、VBAを触るレベルではありません。 どうしても、専用エディタを手に入れたいのでしたら、VbsEdit というシェアウェアがあります。私は、旧版を持っていますが、そんなに使うことはありません。
その他の回答 (5)
- Wendy02
- ベストアンサー率57% (3570/6232)
補足: >下記を実効してもIP アドレスも変更しないしエラーの表示も無いので >どの様にしたら記述のミスを発見することが出来るのでしょうか。? Loop の下の errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask) If errEnable >0 Then Wscript.Echo "Err:IP Address not enable to change" End If と入れてあげれば分かると思います。
お礼
Wendy02様何度も、回答ありがとう御座いました。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 最初に、レスの付け方が逆でしたね。(^^; 最初に、補足側につけて、その後に、お礼をつけるか、最初からお礼側に書けば、こちらもすぐに対応できたのですが、過去のフィードバックは、こちらも時間のあるときになってしまいます。 >どの様にしたら記述のミスを発見することが出来るのでしょうか。? それ自体には、ミスはありませんね。 途中、MsgBox で、判定をするしかありません。 たとえば、 If errEnable <> "" Then MsgBox errEnable End If とするとか、コマンドプロンプトでみるなら、 Wscript.Echo errEnable でみれます。 ところで、そのコード自体は、問題ないと思いますね。 確認は、コマンドプロンプトは、> ARP -a で見れると思います。
お礼
Wendy02様、回答ありがとう御座います。 なるほど、MsgBoxで何が入っているか確認するのですね。 私も、いろいろ無料のソフトを探してみましたが無料では 無いようですね。 Visual Studio 2005 スタンダード以上でWSHで1行ずつの ステップインが出来るようですが何万も出す気がしないので。。。。 Wendy02様何度も、回答ありがとう御座いました。
- takana_
- ベストアンサー率44% (21/47)
はずしていたらごめんなさい。 Officeソフトをインストールしていたら、Excelを起動し、[ツール(T)]→[マクロ(M)]→[Microsoft Scrip Editor(E)]が表示されるか確認し、 実行してみてください。 実行できれば、EXCELを閉じ Microsoft Scrip Editorを単体で起動します。 MSE7.EXE 私の環境では以下のフォルダにあります。 "C:\Program Files\Microsoft Office\Office10\MSE7.EXE" [ファイル(F)]→[新規作成(N)]でHTMLファイルを作成し、 [表示(V)]→[プロパティウィンドウ(W)]でプロパティウィンドウを表示し、「defaultClintScript」で言語を選択 [表示(V)]→[ツールボックス(X)]でツールボックスを表示し、Buttonを選択し、ダブルクリック するとページに「ボタン」が貼り付きます。 そのボタンをクリックすると、WSHのコードを編集出来るエディタが起動すると思います。 次に、インターネットエクスプローラを起動し、[ツール(T)]→[インターネットオプション(O)]→[詳細設定]タブで [スクリプトのデバッグを使用しない]のチェックをはずしてください。 後は、VBAエディタみたいな感覚で、デバッグが出来ると思います。
お礼
なるほど、会社のexcelは2000ですが上記の方法でも出来ますでしょうか? ともあれ、今度やってみたいと思います。 回答ありがとう御座いました。
補足
takana_様、時間が有れば下記のコードのデバックを教えて欲しいのですが 下記は、MSのサイトにあるIP アドレスを変更するスクリプトですが 下記を実効してもIP アドレスも変更しないしエラーの表示も無いので どの様にしたら記述のミスを発見することが出来るのでしょうか。? 宜しければ教えて下さい。 strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery _ ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=True") strIPAddress = Array("192.168.1.0") strSubnetMask = Array("255.255.255.0") For Each objNetAdapter in colNetAdapters errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask) Next
- anotherone
- ベストアンサー率54% (35/64)
初心者はExcelを使うといいと思います テキストエディタで 実行時のエラーを見て修正 これで十分ですが もし実行時の動きをステップで見たい時などは OfficeのVBAにのせれば それほど手を加えずにエディタとして使うことができます ステートメント 関数は少し違うところもありますが それほど問題になりません 良く分からないという人にはちょうどいいと思います 単純ミスをしないように良く勉強する方が大事だと思います
お礼
なるほど、OfficeのVBAにWSHを書いてステップで実行していくのですね それは、未だやったことがないのでやってみたいです。 回答ありがとう御座いました。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 >他の方法でも結構ですので、皆さんのWSH(Windows Script Host)のデバックの仕方を教えて下さい。 昔、呼び出して使った記憶はあるけれども、"Microsoft Script Debugger" は、あまり良く覚えていないですね。スクリプトデバッガーで、WSHのデバッグというのはあまりしないのではないでしょうか? 以下に専用のツールでは、有名ですが、これはあくまでも練習用です。 http://homepage3.nifty.com/aokura/ asws1010.lzh 多くのみなさんは、WSH は、エディタひとつで作るのではないでしょうか?ただ、ヘルプ(Script56.CHM)は、呼び出しで使います。他のヘルプというと、WMI が必要ですよね。あれは、ややこしいですから、ヘルプやドキュメントなしでは、できません。 私は、専用ツールを探したことはあるのですが、あまり値段的にも安くないようですし、私たちのような2バイトの国では、Fontがサポートしてくれないので、海外のツールが思ったほど使えません。最終的には、ただのテキストエディタで落ち着きました。エラーが出ると、行番号と桁が出てくれるので、それを目安に直していきます。
お礼
お久しぶりです、Wendy02様(前にexcelマクロでお世話になりました。) 今度、リンク先の「WSHを始めよう!」を使ってみたいと思います。 なるほど、「エラーが出ると、行番号と桁」で判断しているのですね。 実は、過去に変数か何かにエラーが有っても何もメッセージが出なかったので どの様に判断すれば良いのかと思いまして今回質問しました。 回答ありがとう御座いました。
補足
Wendy02様、時間が有れば下記のコードのデバックを教えて欲しいのですが 下記は、MSのサイトにあるIP アドレスを変更するスクリプトですが 下記を実効してもIP アドレスも変更しないしエラーの表示も無いので どの様にしたら記述のミスを発見することが出来るのでしょうか。? 宜しければ教えて下さい。 strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colNetAdapters = objWMIService.ExecQuery _ ("Select * from Win32_NetworkAdapterConfiguration Where IPEnabled=True") strIPAddress = Array("192.168.1.0") strSubnetMask = Array("255.255.255.0") For Each objNetAdapter in colNetAdapters errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask) Next
お礼
Wendy02様、いろいろ参考になりました。 回答ありがとう御座います。