a.vbs
==========================================
dim wsh
Dim objFileSystemObject
Dim strFolderPath
set wsh = CreateObject( "WScript.Shell" )
Set objFileSystemObject = WScript.CreateObject("Scripting.FileSystemObject")
strFolderPath = objFileSystemObject.GetFolder(".").Path
wsh.CurrentDirectory = "C:\Users\Desktop"
wsh.Run "その1.vbs"
wsh.CurrentDirectory = "C:\Users\Desktop"
wsh.Run "その2.vbs"
========================================
その1.vbsで生成したものをその2.vbsで使うa.vbsというプログラムを作りましたが
a.vbsではその1.vbsで生成が終わるまれにその2.vbsが始まってしまいうまいこと処理できません
その1.vbsの処理が終わるまでその2.vbsの処理を止めるようにするにはどのように書いたらいいのでしょ
Runメソッドの第三引数でtrueを指示
http://msdn.microsoft.com/ja-jp/library/cc364421.aspx
object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
引数
object
WshShell オブジェクトです。
strCommand
実行するコマンド ラインを示す文字列値です。この引数には、実行可能ファイルに渡すべきパラメータをすべて含める必要があります。
intWindowStyle
省略可能です。プログラムのウィンドウの外観を示す整数値です。すべてのプログラムがこの情報を使用するわけではないので注意してください。
bWaitOnReturn
省略可能です。スクリプト内の次のステートメントに進まずにプログラムの実行が終了するまでスクリプトを待機させるかどうかを示すブール値です。bWaitOnReturn に TRUE を指定すると、プログラムの実行が終了するまでスクリプトの実行は中断され、Run メソッドはアプリケーションから返される任意のエラー コードを返します。bWaitOnReturn に FALSE を指定すると、プログラムが開始すると Run メソッドは即座に復帰して自動的に 0 を返します (これをエラー コードとして解釈しないでください)。
http://blog.livedoor.jp/akf0/archives/51371234.html
http://wsh.style-mods.net/tips/wshtips_2-11.htm
http://wsh.style-mods.net/tips/wshtips_2-05.htm
"その1.vbs"を実行する前に 適当にファイルを作成します。
"その1.vbs"の中では 処理が 終わった時点で、そのファイルを削除します。
呼び出し元では "その1.vbs"を実行後、作成したファイルが存在しなくなるまで ループして待ちます。
これでいかがでしょうか?
それぞれのやり方は、最初に提示したアドレスを参照してみてください。
Runメソッドの第三引数でtrueを指示
http://msdn.microsoft.com/ja-jp/library/cc364421.aspx
object.Run(strCommand, [intWindowStyle], [bWaitOnReturn])
引数
object
WshShell オブジェクトです。
strCommand
実行するコマンド ラインを示す文字列値です。この引数には、実行可能ファイルに渡すべきパラメータをすべて含める必要があります。
intWindowStyle
省略可能です。プログラムのウィンドウの外観を示す整数値です。すべてのプログラムがこの情報を使用するわけではないので注意してください。
bWaitOnReturn
省略可能です。スクリプト内の次のステートメントに進まずにプログラムの実行が終了するまでスクリプトを待機させるかどうかを示すブール値です。bWaitOnReturn に TRUE を指定すると、プログラムの実行が終了するまでスクリプトの実行は中断され、Run メソッドはアプリケーションから返される任意のエラー コードを返します。bWaitOnReturn に FALSE を指定すると、プログラムが開始すると Run メソッドは即座に復帰して自動的に 0 を返します (これをエラー コードとして解釈しないでください)。
下記のように返り値を受け取って以後の処理を分けるほうがベター
result = wsh.Run "その1.vbs",,true if result = ほげほげ then いろいろ
WScript.Shell の Run メソッドはパラメータを三つ取ります。
三番目のパラメータを TRUE にするとプログラムの実行完了を待ち合わせます。
http://msdn.microsoft.com/ja-jp/library/cc364421.aspx
先に呼びだす 'その1.vbs' を以下のように呼び出してみてください。
wsh.Run("その1.vbs", 1, TRUE)
以下のようなコードにして下さい。
set wsh = CreateObject("WScript.Shell") objWshShell.Run("その1.vbs",1,1)
下記のように返り値を受け取って以後の処理を分けるほうがベター
2013/09/03 09:42:07