人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

VBSの質問です
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の処理を止めるようにするにはどのように書いたらいいのでしょ

●質問者: takanii
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● きゃづみぃ
●75ポイント

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"を実行後、作成したファイルが存在しなくなるまで ループして待ちます。

これでいかがでしょうか?

それぞれのやり方は、最初に提示したアドレスを参照してみてください。


2 ● うぃんど
●75ポイント ベストアンサー

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 を返します (これをエラー コードとして解釈しないでください)。


うぃんどさんのコメント
下記のように返り値を受け取って以後の処理を分けるほうがベター >|vb| result = wsh.Run "その1.vbs",,true if result = ほげほげ then いろいろ ||<

3 ● gizmo5
●75ポイント

WScript.Shell の Run メソッドはパラメータを三つ取ります。
三番目のパラメータを TRUE にするとプログラムの実行完了を待ち合わせます。
http://msdn.microsoft.com/ja-jp/library/cc364421.aspx

先に呼びだす 'その1.vbs' を以下のように呼び出してみてください。

wsh.Run("その1.vbs", 1, TRUE)

4 ● だわかき
●75ポイント

以下のようなコードにして下さい。

set wsh = CreateObject("WScript.Shell")
objWshShell.Run("その1.vbs",1,1)
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ