プロが教えるわが家の防犯対策術!

パスはcsvファイルで読みこんで、vbs上で
Set Shell = CreateObject("WScript.Shell")
Shell.Run "cmd /C ""dir \¥xxx\xxxxx\xxxxx"
を実行させてアクセスできなかったパスがぞんざいするならエラーで返して続いて実行してほしいです。
それで最後にログにエラー情報を書く処理をおこないたいです。問題はcmdだとecho %errorlevel%これを使えば
すぐにこげたことを1か0で返してくれますが
vbs上でも可能ですか?

A 回答 (1件)

ret = Shell.Run(コマンド, 1, true)


のようにすればアプリケーションから返されるエラーコードを取得できます。
第3引数の true 、は、アプリケーションの実行が終了するまで待つ指定です。省略すると、実行終了を待たないので、ret は、エラーの有る無しに関係なく無条件に0になります。質問文のような場合は、true を指定する必要があります。

ちなみに、
Shell.Exec でコマンドを実行する場合は、
StdIn,StdOut,StdErr(ストリーム) で標準入力、標準出力、標準エラー出力にアクセスできます。
    • good
    • 0
この回答へのお礼

いつもお世話になります。
早くて正確なアドバイスありがどうございます。
ret = Shell.Run(コマンド, 1, true)
後ろの1、trueが非常にいいヒントになりました。
いつもありがとうございます。

お礼日時:2006/02/21 15:56

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!