• 締切済み

vbscriptを用いて他のVBSファイルを実行

プログラム ---------------------------------------------------------------- option explicit dim objwshell set objwshell = createobject("wscript.shell") objwshell.run "ファイルのフルパス", 1, false set objwshell = nothing --------------------------------------------------------------- その「ファイルのフルパス」上に「notepad.exe」と入力するとメモ帳が起動するんですけど、他のファイル(vbs、jsなど)を指定するとエラーが出ます。 もしかしてこれは拡張子が「.exe」のファイルだけしか起動できないのでしょうか? ちなみに上のファイルを保存するときの拡張子は「.vbs」です。

noname#53923
noname#53923

みんなの回答

  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.3

No.1ですが、少し補足しておきます。 基本的に、VBSの実行ファイルはcscript.exeかwscript.exeになると思います。 ~.vbsは先に書いたようにスクリプトを記述したファイルですので、関連付けに 問題が無ければ、~vbsの指定でどちらかのexeファイルが実行されると思います。 パスが間違っているか関連付けがおかしい場合は起動できない状況になると思います。 ですから、cscript ~ という指定で明示的に実行ファイルを指定する方法を提示しました。

回答No.2

私も同じrunメソッドで .vbs から .vbs をcallしており、問題なく実行できています。 しかし下記の3点ほど気になる点があります。 【1点目】 フルパスとは "D:\ ~ \abc.vbs" のことで、これを "abc.vbs" としていませんか? notepad.exe は既にパス(実行ファイルのあるフォルダのを登録すること)が設定されているため "notepad.exe" だけで実行できます。 【2点目】 runメソッドの第3パラメータを false とすると並列に実行されます。つまり別タスク(別スレッド?)で実行されます。単純な関数callのつもりでしたら true としなければいけませんが、これが原因で意図どおりの結果になっていないことはありませんか? 【3点目】 私は Norton AntiVirus を使ってますが、このソフトは、親スクリプトの初回起動時に認証させても、子スクリプトは無言のまま遮断するようです。この対策としては、一度あらかじめ子スクリプトだけを実行して、子スクリプトを認証させておきます。その後は普通に親スクリプトの実行だけで、子スクリプトも遮断されること無く実行できるようになります。

noname#53923
質問者

お礼

回答ありがとうございました。 解決しました。

  • Yeti21
  • ベストアンサー率47% (396/830)
回答No.1

下記のように、「ファイルのフルパス」に、cscriptの実行でどうでしょうか? "cscript test1.vbs" "cscript test2.js" ※vbsやjs自体は実行可能ファイル(プログラム)ではなく単なるスクリプトを記述したファイルです。

noname#53923
質問者

お礼

ありがとうございました。見事にできました。 ちなみにcscriptだとコマンドプロンプトが表示されてしまうので、wscriptにしました。

関連するQ&A

  • スタートアップフォルダにエクセルファイルを入れてPC起動時の自動が実行可能ですか?

    現在 [メモ帳.vbs]ファイルとして、次のような記述のファイルをスタートアップフォルダに入れてあります。 Option Explicit 'オブジェクト変数の宣言とWshShellオブジェクトの作成。 Dim objWshShell Set objWshShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 10000 '10秒待機 '例としてメモ帳起動 objWshShell.Run "C:\Windows\System32\notepad.exe" これですと、notepad.exeファイルは自動実行されます。  しかし[エクセル.xlsm]というエクセルファイルを同様に単純にパスを通して[エクセル.vbs]ファイルを作成し、 スタートアップフォルダに入れてもエラーが出て実行されません。記述がわかる方いらっしゃったら、ぜひ教えててください。 お願いします

  • vbscript内にvbscriptを記述

    option explicit on error resume next dim objie, objwshell set objwshell = createobject("wscript.shell") objwshell.appactivate "microsoft internet explorer" set objie = createobject("internetexplorer.application") objie.width = 380 objie.height = 100 objie.navigate "about:blank" objie.document.write "<html><head><title>終了処理</title><script language='vbscript'>" & vbcrlf objie.document.write "option explicit" & vbcrlf objie.document.write "function osu()" & vbcrlf objie.document.write " dim aaa" & vbcrlf objie.document.write " Set aaa = CreateObject('Wscript.Shell')" & vbcrlf objie.document.write " aaa.run 'wscript ログオフ.vbs', 1, true" & vbcrlf objie.document.write " set aaa = nothing" & vbcrlf objie.document.write "end function" & vbcrlf objie.document.write "</script></head>" & vbcrlf objie.document.write "<body bgcolor='#CCCCCC' style='overflow:hidden'><form name='form1'>" & vbcrlf objie.document.write "<input type='button' name='button1' value='ログオフ' onClick='osu()'>" & vbcrlf objie.document.write "</form></body></html>" & vbcrlf objie.visible = true objie.toolbar = false objie.statusbar = false objie.resizable = false set objwshell = nothing set objie = nothing 上記のプログラムを[.vbs]という拡張子で保存。 これは、vbsファイルをクリックするとIEの画面が出て、ログオフのボタンをクリックするとログオフするというものなのですが、うまくいきません。 vbsの中にまたvbsを記述しているからでしょうか?

  • VBSファイルをスタートアップフォルダに入れておいて、

    エクセル2007の特定ファイルをそのVBSファイルにより自動起動させる方法を教えてください。ちなみに、次のようなVBSファイルを作成しましたがエラーとなってしまいます。 Option Explicit 'オブジェクト変数の宣言とWshShellオブジェクトの作成。 Dim objWshShell Set objWshShell = WScript.CreateObject("WScript.Shell") WScript.Sleep 1000 '1秒待機 objWshShell.Run "C:¥Program Files¥Microsoft Office¥Office12¥EXCEL.exe" です。

  • VBSでのファイル読込、出力操作について

    いつもありがとうございます。 掲題の件について、ご教授頂けますでしょうか。 下記のように『start.vbs』を実行すると『a.txt』の行に記載されている実行ファイル名を読み込み 『test.vbs』にファイル名分のコマンドを書き込みしたいです。 例) ----------------------------- start.vbs (作成途中) ----------------------------- Set objWShell = CreateObject("wscript.shell") Set objFso = CreateObject("Scripting.FileSystemObject") Set objFile = objFso.OpenTextFile("c:\a.txt", 1, False) ' 出力先ファイル Set objVBSFile = objFSO.CreateTextFile(c:\test.vbs, True) If Err.Number > 0 Then WScript.Echo "Open Error" Else Do Until objFile.AtEndOfStream objVBSFile.WriteLine(objFile.ReadLine) Loop End If ----------------------------- a.txt ----------------------------- adobe.exe photoshop.exe ****.exe    ・    ・    ・ ------------------------------ start.vbs ------------------------------ objWShell.Run "cmd.exe c:\adobe.exe ", 0, True objWShell.Run "cmd.exe c:\photoshop.exe ", 0, True objWShell.Run "cmd.exe c:\****.exe ", 0, True    ・    ・    ・ vbsをサイトを参考にして作ってはいるものの、start.vbsを実行すると a.txtのファイル名をvbsに書き込むのが限界です。 少しずつ勉強していくのですが、本件少し早めに作りたいという背景があり ご教授頂けませんでしょうか。 また、わかりにくい説明となっておりますが どうぞ宜しくお願い致します。

  • VBSCRIPTでcmd命令(dir)を実行させて

    パスはcsvファイルで読みこんで、vbs上で Set Shell = CreateObject("WScript.Shell") Shell.Run "cmd /C ""dir \¥xxx\xxxxx\xxxxx" を実行させてアクセスできなかったパスがぞんざいするならエラーで返して続いて実行してほしいです。 それで最後にログにエラー情報を書く処理をおこないたいです。問題はcmdだとecho %errorlevel%これを使えば すぐにこげたことを1か0で返してくれますが vbs上でも可能ですか?

  • vbsからbatを動かしたいです♪

    vbsからbatを動かしたいです♪ リモートでマシンを動かしたいのですが・・・。 動きません!なぜでしょう? どなたか助けてください、お願いします。 =============== Set shell = CreateObject("Wscript.Shell") shell.Run "\\(マシン名)\C$test\test.bat" set shell = nothing =============

  • “.vbs”のファイルが実行できない

    まったく初歩的な質問で申し訳ないのですが、拡張子がvbsのファイルが実行できません。 あるソフトをアンインストールするために実行したいんですが、ダブルクリックするとアプリケーションを選べみたいなのが出てきて、よく分かりません。 一応、そのvbsファイルをNotepadで開いてみたものを載せときます。 ---------------------------------------- On Error Resume Next set shell = CreateObject("WScript.Shell") set fso = CreateObject("Scripting.FileSystemObject") bcp="C:\Program Files\BCP" msg = msgbox("ブラクラでヤバイVer4をアンインストールしますか?",vbYesNo) if msg=vbNo then WScript.Quit if fso.FolderExists("C:\Program Files\BCP\")then fso.DeleteFolder bcp msgbox "フォルダの削除完了" end if shell.RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\ブラクラでヤバいでチェック\") shell.RegDelete("HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\MenuExt\ブラクラでヤバいを起動\") msgbox("アンインストールが完了しました。"&Chr(13)&Chr(13)&"By 禿親父") ---------------------------------------- どなたか分かる方いましたら教えてください。 よろしくお願いします。

  • ASPからVBScriptの実行

    ASPから下のVBScriptを実行使用とすると "500"Internal Server Error が出力されて困ってます。 へるぷみー Dim objWSHShell Set objWSHShell=WScript.CreateObject("WScript.Shell") objWSHShell.Run "cscript.exe d:\test.bat" objWSHShell=Nothing

  • VBSからのサーバサイドのEXEの実行

    こんにちはSHIRAOといいます。 WScript.Shellを使用してサーバにあるEXEファイルを 起動しようと思っているのですがどうもうまくいきません。WScript.Shellを使用する時に何か設定しなければならないことがあるのでしょうか? <script language="vbscript"> Function Window_OnLoad : Set objShell = WScript.CreateObject("WScript.Shell") objShell.Run "C:\WINDOWS\system32\notepad.exe" : End Function </script>

  • 何とかFireFox用のVBSを作ってみたのですが、

    何とかFireFox用のVBSを作ってみたのですが、 下のような記述ですとサイトの種類分ブラウザも 起動してきてしまいます。 タブで開きたいのですが、 どのように記述すればいいのでしょうか。 よろしくお願いいたします。 =================== Option Explicit Dim objWshShell Set objWshShell = WScript.CreateObject("WScript.Shell") objWshShell.Run """c:\Program Files\Mozilla Firefox\firefox.exe"" -new-tab http://www.google.co.jp" objWshShell.Run """c:\Program Files\Mozilla Firefox\firefox.exe"" -new-tab http://www.msn.co.jp" objWshShell.Run """c:\Program Files\Mozilla Firefox\firefox.exe"" -new-tab http://www.yahoo.co.jp" Set objWshShell = Nothing

専門家に質問してみよう