- 締切済み
vbscriptを用いて他のVBSファイルを実行
プログラム ---------------------------------------------------------------- option explicit dim objwshell set objwshell = createobject("wscript.shell") objwshell.run "ファイルのフルパス", 1, false set objwshell = nothing --------------------------------------------------------------- その「ファイルのフルパス」上に「notepad.exe」と入力するとメモ帳が起動するんですけど、他のファイル(vbs、jsなど)を指定するとエラーが出ます。 もしかしてこれは拡張子が「.exe」のファイルだけしか起動できないのでしょうか? ちなみに上のファイルを保存するときの拡張子は「.vbs」です。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Yeti21
- ベストアンサー率47% (396/830)
No.1ですが、少し補足しておきます。 基本的に、VBSの実行ファイルはcscript.exeかwscript.exeになると思います。 ~.vbsは先に書いたようにスクリプトを記述したファイルですので、関連付けに 問題が無ければ、~vbsの指定でどちらかのexeファイルが実行されると思います。 パスが間違っているか関連付けがおかしい場合は起動できない状況になると思います。 ですから、cscript ~ という指定で明示的に実行ファイルを指定する方法を提示しました。
- saisho_wa_goo
- ベストアンサー率32% (31/96)
私も同じrunメソッドで .vbs から .vbs をcallしており、問題なく実行できています。 しかし下記の3点ほど気になる点があります。 【1点目】 フルパスとは "D:\ ~ \abc.vbs" のことで、これを "abc.vbs" としていませんか? notepad.exe は既にパス(実行ファイルのあるフォルダのを登録すること)が設定されているため "notepad.exe" だけで実行できます。 【2点目】 runメソッドの第3パラメータを false とすると並列に実行されます。つまり別タスク(別スレッド?)で実行されます。単純な関数callのつもりでしたら true としなければいけませんが、これが原因で意図どおりの結果になっていないことはありませんか? 【3点目】 私は Norton AntiVirus を使ってますが、このソフトは、親スクリプトの初回起動時に認証させても、子スクリプトは無言のまま遮断するようです。この対策としては、一度あらかじめ子スクリプトだけを実行して、子スクリプトを認証させておきます。その後は普通に親スクリプトの実行だけで、子スクリプトも遮断されること無く実行できるようになります。
- Yeti21
- ベストアンサー率47% (396/830)
下記のように、「ファイルのフルパス」に、cscriptの実行でどうでしょうか? "cscript test1.vbs" "cscript test2.js" ※vbsやjs自体は実行可能ファイル(プログラム)ではなく単なるスクリプトを記述したファイルです。
お礼
ありがとうございました。見事にできました。 ちなみにcscriptだとコマンドプロンプトが表示されてしまうので、wscriptにしました。
お礼
回答ありがとうございました。 解決しました。