DOBON.NET DOBON.NETプログラミング掲示板過去ログ

Batファイルの結果を取得したい

環境/言語:[VB6]
分類:[VB6以前]

おはようございます
現在、EXEからBatファイルを実行するといった
プログラムを作成しています。

そこで、困っているのですが
Batファイルの実行結果をEXE側で取得したいのです。

例えば、正しく処理が行われた場合と、
エラーが起きた場合でBatファイルの処理を変えて
その結果をEXE側で取得する
というような感じです。

現在思いつく方法は、Batファイルから
処理が正しく行われたかどうかのファイルを出力し
EXEでファイルの存在チェックをするというものです。

分かる方よろしくお願いします。

※EXE側では同期をとってBatファイルを実行しています。
2004/01/09(Fri) 11:14:14 編集(投稿者)

■No2094に返信(VBmanさんの記事)
> 現在思いつく方法は、Batファイルから
> 処理が正しく行われたかどうかのファイルを出力し
> EXEでファイルの存在チェックをするというものです。

AとBの適当なファイルを用意する。
BATが成功したら、Aのファイルを名前Cに変更してコピーする。
BATが失敗したら、Bのファイルを名前Cに変更してコピーする。
BATが終了したら、Cファイルを確認。

#ダメ?
#別な方法として、BATでパイプを利用してTEXTファイルを作成。
> AとBの適当なファイルを用意する。
> BATが成功したら、Aのファイルを名前Cに変更してコピーする。
> BATが失敗したら、Bのファイルを名前Cに変更してコピーする。
> BATが終了したら、Cファイルを確認。
>
> #ダメ?
> #別な方法として、BATでパイプを利用してTEXTファイルを作成。

すみません、いまいち説明がわかりません。。汗
コピーする部分とか。。
■No2096に返信(VBmanさんの記事)
> すみません、いまいち説明がわかりません。。汗
> コピーする部分とか。。
VBMANさんの「正しく処理が行われた場合」ってのが不明なので例が難しいのですが、
例えば DIR C:\*.* > C:\HOGE.TXT でテキストファイルを作成するとか
IF ERRORLEVELを利用して処理を振り分けて、成功・失敗(?)のファイルを識別しては?
との回答でした。

#説明不足で申し訳ございませんでした。
未確認です。
WSHのShellオブジェクトを使用してBATファイルを起動すれば
戻り値を拾えませんでした?
Dim objProcess As New Process
With objProcess.StartInfo
.RedirectStandardOutput = True
.UseShellExecute = False
.FileName = "test.bat"
End With

objProcess.Start()
objProcess.WaitForExit()

Dim tr As IO.StreamReader = objProcess.StandardOutput()

Dim strRet As String = tr.ReadToEnd
あれ?VB6では?
■No2113に返信(Sugi@ぱぱんぶぃびぃさんの記事)
> あれ?VB6では?
いやみなものいいやね

DOBON.NET | プログラミング道 | プログラミング掲示板