プロが教えるわが家の防犯対策術!

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)のデバックの
仕方を教えて下さい。
では、宜しくお願いします。

A 回答 (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 というシェアウェアがあります。私は、旧版を持っていますが、そんなに使うことはありません。
    • good
    • 0
この回答へのお礼

Wendy02様、いろいろ参考になりました。
回答ありがとう御座います。

お礼日時:2007/11/25 21:34

補足:



>下記を実効してもIP アドレスも変更しないしエラーの表示も無いので
>どの様にしたら記述のミスを発見することが出来るのでしょうか。?
Loop の下の

errEnable = objNetAdapter.EnableStatic(strIPAddress, strSubnetMask)
If errEnable >0 Then
Wscript.Echo "Err:IP Address not enable to change"
End If

と入れてあげれば分かると思います。
    • good
    • 0
この回答へのお礼

Wendy02様何度も、回答ありがとう御座いました。

お礼日時:2007/11/25 13:00

こんにちは。



最初に、レスの付け方が逆でしたね。(^^;
最初に、補足側につけて、その後に、お礼をつけるか、最初からお礼側に書けば、こちらもすぐに対応できたのですが、過去のフィードバックは、こちらも時間のあるときになってしまいます。

>どの様にしたら記述のミスを発見することが出来るのでしょうか。?

それ自体には、ミスはありませんね。
途中、MsgBox で、判定をするしかありません。
たとえば、

If errEnable <> "" Then
MsgBox errEnable
End If

とするとか、コマンドプロンプトでみるなら、

Wscript.Echo errEnable

でみれます。

ところで、そのコード自体は、問題ないと思いますね。

確認は、コマンドプロンプトは、> ARP -a で見れると思います。
    • good
    • 0
この回答へのお礼

Wendy02様、回答ありがとう御座います。
なるほど、MsgBoxで何が入っているか確認するのですね。
私も、いろいろ無料のソフトを探してみましたが無料では
無いようですね。
Visual Studio 2005 スタンダード以上でWSHで1行ずつの
ステップインが出来るようですが何万も出す気がしないので。。。。
Wendy02様何度も、回答ありがとう御座いました。

お礼日時:2007/11/25 12:58

はずしていたらごめんなさい。



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エディタみたいな感覚で、デバッグが出来ると思います。

この回答への補足

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

補足日時:2007/11/20 17:23
    • good
    • 0
この回答へのお礼

なるほど、会社のexcelは2000ですが上記の方法でも出来ますでしょうか?
ともあれ、今度やってみたいと思います。
回答ありがとう御座いました。

お礼日時:2007/11/18 16:06

初心者はExcelを使うといいと思います


テキストエディタで 実行時のエラーを見て修正 これで十分ですが
もし実行時の動きをステップで見たい時などは
OfficeのVBAにのせれば それほど手を加えずにエディタとして使うことができます
ステートメント 関数は少し違うところもありますが
それほど問題になりません
良く分からないという人にはちょうどいいと思います
単純ミスをしないように良く勉強する方が大事だと思います
    • good
    • 0
この回答へのお礼

なるほど、OfficeのVBAにWSHを書いてステップで実行していくのですね
それは、未だやったことがないのでやってみたいです。
回答ありがとう御座いました。

お礼日時:2007/11/18 16:01

こんばんは。



>他の方法でも結構ですので、皆さんのWSH(Windows Script Host)のデバックの仕方を教えて下さい。

昔、呼び出して使った記憶はあるけれども、"Microsoft Script Debugger" は、あまり良く覚えていないですね。スクリプトデバッガーで、WSHのデバッグというのはあまりしないのではないでしょうか?

以下に専用のツールでは、有名ですが、これはあくまでも練習用です。

http://homepage3.nifty.com/aokura/

asws1010.lzh

多くのみなさんは、WSH は、エディタひとつで作るのではないでしょうか?ただ、ヘルプ(Script56.CHM)は、呼び出しで使います。他のヘルプというと、WMI が必要ですよね。あれは、ややこしいですから、ヘルプやドキュメントなしでは、できません。

私は、専用ツールを探したことはあるのですが、あまり値段的にも安くないようですし、私たちのような2バイトの国では、Fontがサポートしてくれないので、海外のツールが思ったほど使えません。最終的には、ただのテキストエディタで落ち着きました。エラーが出ると、行番号と桁が出てくれるので、それを目安に直していきます。

この回答への補足

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

補足日時:2007/11/20 17:34
    • good
    • 0
この回答へのお礼

お久しぶりです、Wendy02様(前にexcelマクロでお世話になりました。)
今度、リンク先の「WSHを始めよう!」を使ってみたいと思います。
なるほど、「エラーが出ると、行番号と桁」で判断しているのですね。
実は、過去に変数か何かにエラーが有っても何もメッセージが出なかったので
どの様に判断すれば良いのかと思いまして今回質問しました。
回答ありがとう御座いました。

お礼日時:2007/11/17 01:38

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!