• ベストアンサー

VBScript(vbs)から他のVBScriptファイルのプロシージャを実行

複数のVBScriptファイル(vbs)が存在し、それぞれのファイル間のプロシージャーを呼んだりしたいのですが可能でしょうか?? それともvbsは1ファイルに前処理記述しなければいけないのでしょうか?

  • sting
  • お礼率12% (35/274)

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

#1補足>vbsファイル同士の呼び出しは可能でしょうか?? バッチファイルの様に、呼び出すという意味なら Set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "other.vbs" のように実行することができます。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

例えば、 proc.vbs ------------------- function square(x) square=x*x end function ------------------- がある時 exProc.wsf ------------------------------------------------- <job id="ExProc"> <script language="VBScript" src="proc.vbs" /> <script language="VBScript"> WScript.Echo square(5) </script> </job> ------------------------------------------------- のように使うことができます。

sting
質問者

補足

すみません、回答が遅くなりました。 vbsファイル同士の呼び出しは可能でしょうか??

関連するQ&A

  • VBScriptで他のファイルにあるプロシージャを呼び出すには?

    初歩的な質問で申し訳ありません。 hogehoge.aspというプログラムでmyinclude.***というファイル内のFunctionなりSubなりを呼び出す場合は <!--#include file="myinclude.asp"--> や <!--#include file="myinclude.vbs"--> のよう書くと呼び出すことができます。 それと同じように hogehoge.vbsというプログラムからmyinclude.vbs or myinclude.asp内のプロシージャを呼び出したいのです。 どのように記載すればよいのでしょうか。 アドバイスをお願い致します。

  • VBSでバッチファイルを実行したときに

    VBSでbatファイルを起動したときに、 batファイルの実行が完了するまで、 「ただいま、処理中・・・」というような ダイアログボックスを表示し、処理完了後に そのダイアログボックスを消して、次処理へ いくようなスクリプトの記述の仕方がありまし たら教えてください。 よろしくお願いいたします。

  • VBScript(WScript)のバッチファイル実行

    お世話になります。 VBScriptで困っています。 ご存知の方、ご教示願えますでしょうか。 Windowsでバッチファイルを実行したときに、DOS画面(コマンドプロンプト)が一瞬パッて表示されるかと思います。 現在開発中のシステムで、プログラムからバッチファイルを自動で実行する処理を入れております。 通常ならばバッチファイルを実行した場合、DOS画面が表示されてしまいますが DOS画面を出さないようにプログラムを組んでいます。 つまり、VBScriptからバッチファイルを実行しております。 以下、VBScriptのソースを記載します。 Set objShell = WScript.CreateObject("WScript.Shell") fcresult = objShell.Run("C:\abc.bat", 0, True) wscript.quit fcresult 上記のVBSを実行すると、必然的に「abc.bat」が実行されます。 しかし、現在僕が使っている環境ですとDOS画面が表示されません(←これがやりたいこと) しかし、お客さんの環境で同じ様にVBSからバッチファイルを実行すると 「C:\WINDOWS\System32\CScript.exe」という名前でDOS画面が起動されてしまいます。 周りの環境でもVBSからバッチをたたくような処理を行ってみましたが、DOS画面が起動されず。。。 正直、再現が難しいため大変困っております。 お客さんの環境では100%再現されます。 全くもって原因がつかめておりません。 Windowsのセキュリティの設定でしょうか!? ご存知の方いらっしゃいましたら、知恵をお貸しください。 よろしくお願いいたします。

  • VBScriptでSQLファイルの実行

    WSHShell.Runにて、SQL*Plus経由でXXX.sql(内部でストアドプロシージャをコールします)を実行し、ログも出力したいのですが、以下のコマンドをRunに指定すると、sqlplusより返ってこなくなってしまいます。 コマンドプロンプトで実行する分には、正常に終了するのですが・・・。 何が悪いのかわかりません。。 sqlplus -s ユーザー/パスワード@ホスト名 @C:\temp\XXX.sql > C:\temp\XXX.log 代替案として、VBSにてOracleのProcedureをコールする方法でも構いません。 わかる方いらっしゃいましたらご教授願います。 ちなみに、コマンド部分をbatファイルにしてそのbatファイルをVBSでコールすることは可能でした。

  • 【VBScript】ファイルのPathを表示させる

    初歩ですが、VBScriptの処理で質問させてください。 以下の処理を実現したいと思っています。 ・WScript.Arguments.vbsにファイルをドラッグした際に、 ファイルのPathを表示する ・2つ以上のファイルがドラックされた場合は、 アラームを上げて処理を中断する [WScript.Arguments.vbs] Dim Inti Dim oParam(1) for Inti=0 to 1 Set oParam(Inti) = WScript.Arguments MsgBox oParam(Inti) next このコードですが、他に何を追加すればよろしいでしょうか。 恐れ入りますが、回答いただければ幸いです。

  • WindowsHostScript(.vbs)?をバッチファイルから操作する

    バッチファイルの本を読んでいるのですが、バッチファイルの中から「WindowsHostScriptを呼び出す」という項目があります。それについての本を本屋で探したのですが、見当たりません。 1.本によるとWindowshostScriptは拡張子が「.vbs」とかいてあります。VBScriptも拡張子が「.vbs」です。要するに、WindowsHostScriptとはVBScriptのことなんでしょうか? 2.また、僕は、VBScriptはJavaScriptみたいにWEBで使うものだと思っていましたが、コマンドラインでも使えるものなんでしょうか? 以上2点、分かる方、よろしくお願いします。

  • UWSCからvbsファイルを呼ぶ方法

    UWSCからvbsを呼ぼうと思って以下の記述をしてみましたが、上手く動きません。 str="C:\SendMail.vbs" Exec(str) SendMail.vbsファイルをマウスでクリックすると正常にメールが届くのでSendMail.vbs内の記述には問題なさそうです。 ググってもUWSCファイル内にvbsのファンクションを記述する方法はありましたが、vbsファイルの呼び出し方は見つけられませんでした。 正しい記述方法があれば教えて下さい。よろしくお願いします。

  • SQLServer2005のストプロでxp_cmdshellを使いvbsファイルを実行できない

    ストプロ内でxp_cmdshellを使用し、vbsファイルを実行したいのですが実行できません。 vbsファイルはxp_cmdShellでキックされたらSQLサーバのデータをSELECTし、テキストファイルにSELECTで取得した行数だけ行を追加するという内容です。 vbsファイルはコマンドプロンプトから実行すると動くので正しいと思います。 ストプロにはvbsファイル実行の前後にtableのupdate作業があり、 その2つは行われます。しかし、書き出されるはずのデータがテキストファイルに書き出されません。 vbsファイルは実行されていないようですがエラーは出ず正常終了となり、 xp_cmdshell実行後の戻り値は0で成功となっています。 xp_cmdshellオプションは有効になっており、は混合モードでSysAdminの権限を持つユーザーで処理をしています。 また、ストプロではなく、SQLServerManagementStudioから下記のようにvbsファイル実行しようとした場合、エラーなく正常終了するのですがテキストファイルにデータは追加されていません。  EXEC @result = xp_cmdshell 'Cscript c:\AddRow.vbs' しかし、EXEC xp_cmdshell 'dir *.exe'は実行できます。 vbsファイルをxp_cmdshell で実行するときは何か特殊な記述が必要なのでしょうか。何がいけないのかわからず困っております。お気づきのことがありましたらご指摘いただけますようお願い致します。 以下にストプロの中身をを記述します。 BEGIN   SET NOCOUNT ON; -- テーブルのアップデート処理   UPDATE table1 SET Status = 1   WHERE Status = 0 --ファイル書き出しvbsの実行   DECLARE @result int   SET @result = 1   EXEC @result = xp_cmdshell 'Cscript c:\AddRow.vbs' --ここは下記のようにCscriptを抜いても試しましたがだめでした。 --EXEC @result = exec master..xp_cmdshell 'c:\AddRow.vbs'   IF (@result = 0)   BEGIN --xp_cmdshellの実行が成功したときのみこの処理に入る予定。 --実際は実行されていないようだが@result が0なのでこの処理を行っている。     UPDATE table1 SET Status = 2     WHERE Status = 1   END END

  • VBScriptでエクセルを開き、

    VBScriptでエクセルを開き、 そのエクセルにテキストを書き込んでセーブしてから閉じる。 という処理を行っているのですが、 テキストを書き込んでいる間に、エクスプローラー上で別のエクセルファイルを開こうとすると、VBScriptで開いている同じエクセルアプリケーションで開いてしまい、 VBScriptのセーブしてから閉じるという処理が走ると、同様に閉じてしまいます。 希望としては、 テキストを書き込んでいる間に、エクスプローラー上で別のエクセルファイルを開こうとすると、別エクセルアプリケーションが開き、VBScriptとは、別として動作してほしいと考えていますが、 私の至らぬ知識ですとどうしても解決できません、ご協力をお願い致します。

  • ストアドプロシージャでのファイル操作

    ストアドプロシージャでファイルの入出力は可能なのでしょうか? ストアドプロシージャでEXEやバッチファイルの呼び出しは可能でしょうか?また、制約などはあるのでしょうか? トリガのタイミングにbeforeがないのですが、代わりとなる方法は存在するのでしょうか? まだ、初心者なので非常に困ってます。 複数の質問なので一つずつでもいいので教えて頂けると助かります。 一応、自分でもサイトなどを検索しているのですが、わかりやすいサイトがなく苦しんでます。

専門家に質問してみよう