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

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となってしまいます。

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

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


●質問者: noface
●カテゴリ:コンピュータ
✍キーワード:echo SET test txt VBS
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● あひる
●100ポイント ベストアンサー

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

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

◎質問者からの返答

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

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


2 ● uehara_delta
●20ポイント

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

関連質問


●質問をもっと探す●



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