• ベストアンサー

VBSCRIPTでcmd命令(dir)を実行させて

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

質問者が選んだベストアンサー

  • ベストアンサー
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

ret = Shell.Run(コマンド, 1, true) のようにすればアプリケーションから返されるエラーコードを取得できます。 第3引数の true 、は、アプリケーションの実行が終了するまで待つ指定です。省略すると、実行終了を待たないので、ret は、エラーの有る無しに関係なく無条件に0になります。質問文のような場合は、true を指定する必要があります。 ちなみに、 Shell.Exec でコマンドを実行する場合は、 StdIn,StdOut,StdErr(ストリーム) で標準入力、標準出力、標準エラー出力にアクセスできます。

roba1234
質問者

お礼

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

関連するQ&A