シナリオ:いくつかのスケジュールされたジョブ(Control-M)には多くのプロセスが実行されており、その中にはXMLファイルから構成を読み取る.VBSファイルこれを解釈してテーブルにデータをロードする企業のソフトウェアに送信します。Wscript makeプロセスがバックグラウンドで実行されていないか、終了中に待機する
私は(また、各ステップを記録します)、上記のように述べていること、VBSファイルを助けるだけでXMLから命令を取得し、これらのステップとソフトウェアに送る必要があります。
を検索しますXML;
(XMLパラメータを使用して)ソフトウェアにログインするオブジェクトを作成します。
Dim object Set object = CreateObject("service.location.id")
データベースへのログイン(XMLパラメータを使用)。
object.Login("DATABASE_NAME")
どのデータベース(XML ...)を選択しますか。
object.SelectDatabase("DATABASE_NAME")
問題は、デフォルトのインタープリターは
wscript
あるので、スクリプトを実行するときに、それがバックグラウンドで実行され、ジョブスケジューラが考えることである負荷proccessにobject.LoadRepositoryTable(XML)
を起動するコマンドを送信します実行を終了し、次のジョブを開始します。
CMDでスクリプトを実行すると、cscript SCRIPT.vbs
という名前で起動すると、ロード・プロセス全体が終了するのを待っています(バックグラウンドでは実行されません)。実行中はwscript
です。彼らがスクリプトをどのように呼び出すか編集することは、現在、オプションではありません。これには、SCRIPT.vbs
をcscript
と呼び出す.batファイルの作成が含まれます。
「VBスクリプト内で別の.vbsファイルを実行する方法」を検索して、cscript
として実行しましたが、動作させることはできませんでした。
どうすればよいですか?
wscript
は負荷を待つ方法がありますか?
2つの引数を渡している間に同じフォルダ内の.vbsを(パラメータとして送信せずに)呼び出す方法はありますか?
もう1つのオプションは表示されませんか?
編集:これまでのところ私はこれまでに来たことはありますが、私は「期待通りの終わり」を得ています。
Dim objShell
Dim arg_dir
arg_dir = Wscript.Arguments.Item(0)
Dim arg_xml
arg_xml = Wscript.Arguments.Item(1)
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "cmd /k cscript ""C:\Folder\Scripts\SCRIPT.vbs" &" "& arg_dir &" "& arg_xml"", 1, True