VBSで作られたプログラム(test.vbs)から、

バッチ(a.bat)を実行し、
このバッチの中で、ファイルのコピーをしようと考えています。

ここでvbs側でbat内のコピーに成功したか、失敗したかを
把握したく以下のようなコードを作成しました。

----以下、test.vbs---
Set WSHShell = WScript.CreateObject("WScript.Shell")
cmd = "D:\a.bat"
return = WSHShell.Run(cmd)

msgbox return
----以上、test.vbs---


----以下、a.bat---
@echo off
copy a.txt a2.txt
----以上、a.bat---


この内容で実行を試みたところ、
ファイルコピーの成否にかかわらず、
vbsで表示される実行結果(return)の値は、
常に0となってしまいます。

ファイルコピーの成否により、
実行結果を反映させるにはどのようにすればよろしいでしょうか。

どうぞよろしくお願い致します。

回答の条件
  • 1人2回まで
  • 登録:2008/09/11 21:45:11
  • 終了:2008/09/12 09:22:01

ベストアンサー

id:ahirusan No.1

あひる回答回数229ベストアンサー獲得回数32008/09/11 21:57:02

ポイント100pt

Runメソッドの4番目の引数として true を渡せば、起動したアプリの戻り値が帰ります。falseの場合は起動したアプリの実行結果を待たずしてRunメソッドは終了し、無条件に0を返します。

http://msdn.microsoft.com/ja-jp/library/cc364421.aspx

id:noface

3番目の引数に渡すことで解決できました

ありがとうございました。

2008/09/12 09:20:46

その他の回答(1件)

id:ahirusan No.1

あひる回答回数229ベストアンサー獲得回数32008/09/11 21:57:02ここでベストアンサー

ポイント100pt

Runメソッドの4番目の引数として true を渡せば、起動したアプリの戻り値が帰ります。falseの場合は起動したアプリの実行結果を待たずしてRunメソッドは終了し、無条件に0を返します。

http://msdn.microsoft.com/ja-jp/library/cc364421.aspx

id:noface

3番目の引数に渡すことで解決できました

ありがとうございました。

2008/09/12 09:20:46
id:uehara_delta No.2

uehara_delta回答回数8ベストアンサー獲得回数02008/09/12 00:12:33

ポイント20pt

a.bat の最後に exit %errorlevel% を付け加えてください。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません