• ベストアンサー

コマンドプロンプトのERRORLEVELについて!

コマンドプロンプトの記述で、ERRORLEVELというのがありますが そのERRORLEVELが、0の場合は正常終了と考えていいのでしょうか?

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.7

>if not ERRORLEVEL 1 goto aaa >教えていただいた上記記述なんですが、 >1じゃないということは、2~255も含まれるのではないのでしょうか? >素朴な疑問ですいません。 if文の文法については、if /? で調べてください。 if ERRORLEVEL 1 goto aaa は、ERRORLEVEL が1以上の時にgoto aaaするという意味です。ということを#4の人が書いてるのですが・・・ 従って、その否定である、 if not ERRORLEVEL 1 goto aaa は、ERRORLEVEL が1未満つまり0のときにgoto aaaします(負になることはないので)。

その他の回答 (6)

  • Bonjin
  • ベストアンサー率43% (418/971)
回答No.6

No.5さんの書き方でもいいんですが、 > IF %ERRORLEVEL%==0 GOTO aaa と書いてもいいです。 どちらかと言えば、こっちの書き方の方が意味(分岐条件)がわかりやすいです。

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.5

ということで、0のときにgotoしたいのなら、 if not ERRORLEVEL 1 goto aaa です。 コマンドの結果がちゃんとERRORLEVELに合っているかは、 コマンド実行直後に、echo %ERRORLEVEL% としてみればわかります。

saizumoa
質問者

補足

if not ERRORLEVEL 1 goto aaa 教えていただいた上記記述なんですが、 1じゃないということは、2~255も含まれるのではないのでしょうか? 素朴な疑問ですいません。

  • dsuekichi
  • ベストアンサー率64% (171/265)
回答No.4

> if errorlevel 0 goto aaa: > 上記のようにPGMを記述してもうまく認識してくれません。 > 0は認識してくれないのでしょうか? 認識しないと言うか・・・この条件では意味無いですね。 「IF ERRORLEVEL」の条件は、エラー番号が、指定した番号「以上」の時成立します。 つまり、「0」を指定すると「全部」の意味に・・・

  • goold-man
  • ベストアンサー率37% (8364/22179)
回答No.3

NO2追加 正常終了した時に「0」、異常終了した時に「0」以外(1~255)を返すように設定(ふつう)

参考URL:
http://okwave.jp/qa2422923.html
  • goold-man
  • ベストアンサー率37% (8364/22179)
回答No.2

ERRORLEVELには、0~255までがあります。

参考URL:
http://www.fpcu.jp/dosvcmd/bbs/log/cat3/if/errorlevel/1-0644.html
  • akina_line
  • ベストアンサー率34% (1124/3287)
回答No.1

こんにちは。  >0の場合は正常終了と考えていいの  定義からすると、その通りです。  ただし、コマンドが「ファイルを開けませんでした!」というメッセージを出して正常終了する場合もあるので、コマンドの仕様を確認しないと、思い通りになったかどうかは分かりません。 では。

saizumoa
質問者

補足

もう一つ教えてください。 ifコマンドで分岐をかけたいのですが、 if errorlevel 0 goto aaa: 上記のようにPGMを記述してもうまく認識してくれません。 0は認識してくれないのでしょうか?