• ベストアンサー

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

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

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4845/10255)
回答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% (4845/10255)
回答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% (8365/22183)
回答No.3

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

参考URL:
http://okwave.jp/qa2422923.html
  • goold-man
  • ベストアンサー率37% (8365/22183)
回答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は認識してくれないのでしょうか?

関連するQ&A

  • コマンドプロンプトのERRORLEVEL

    お世話になります。 どなたかご教授ください。 よろしくお願いいたします。 NT/2000/XPのそれぞれのコマンドプロンプトで以下のコマンドを 実行しました。 >del /Q a.dat ※a.datは存在しないファイルです。 このコマンドの直後%ERRORLEVEL%をechoコマンドで表示したのですが OSによって結果が違いました。 NT/XP →0 2000 →1 原因は何でしょうか? 2000でも0にする方法はありますでしょうか?

  • コマンドプロンプトが動いてくれません。

    javaの参考書を読みながら勉強しています。 本に記述されているコードをコマンドプロンプトで動かそうとしましたが、 コンパイルが出来ませんでした。 「'javac'は、内部コマンドまたは外部コマンド、操作可能なプログラムまたは バッチファイルとして認識されていません。」と、メッセージが表示されます。 久しぶりにコマンドプロンプトを使いました。以前は正常に動いていました。 エクリプス上では動いているので、コードの記述には問題がないと思います。 よろしくお願い致します。

    • ベストアンサー
    • Java
  • コマンドプロンプトについて

    お世話になります。 コマンドプロンプトでの起動方法は分かるのですが、 Excel終了方法を知りたいです。下記の様に記述して うまく行きませんでした。 また、今Excelが開かれているなら、終了する。と言う 記述方法もご教示頂きたく宜しくお願い致します。           記 taskkill / fi "excel.exe"-

  • コマンドプロンプトのERRORLEVELを取得したい

    VBからコマンドプロンプトを呼び出し、 他のEXEを実行させ、 そのERRORLEVELを取得したいのですが、 どのようにすればよいでしょうか?

  • ERRORLEVELの使い方

    ERRORLEVELの使い方について質問させて頂きます。 echo Start cmd /c test1.bat if %ERRORLEVEL% neq 0 echo 1>mylog.txt else echo 2> mylog.txt exit rem test1.batの内容は、下記のようなもの rem xxx.exe 環境変数 %ERRORLEVEL%は、DOSプロンプトであれ、 チャイルドプロセス test1.bat であれ、とにかく エラーを保持するとのことですが、 上記のスクリプトが、どんな時でも、本当に正しく動くのか、心配です。 どうせ、ERRORLEVELをみて、何がしかの処理をするなら、 チャイルドプロセスの中で、 xxx.exeの次で、記述すべきではないかと考えます。 はたまた、別の世界(このDOSプロンプト、及びそのチャイルドプロセス以外)での エラーは、このERRORLEVELには、影響しないのでしょうか? さしあたり、自分で実験をしてみて、上記のバッチ、或いは、チャイルドプロセスにて記述 いずれも、動作は、期待通りでした。しかし、だからといって、どんな時でも、 期待通りに動くのかは、不明です。   ERRORLEVELは、エラーを発生させるルーチンの直下で評価すべきであり   そのルーチンがチャイルドプロセスであれば、チャイルドプロセスの中で処理すべき。   (cmd /cで戻って、ERRORLEVELを評価するのは、正しくない) ただ、これに拘ると、スクリプトが分散されてしまい、見通しが悪くなってしまいます。 宜しく、サジェスチョンをお願い申し上げます。

  • コマンドプロンプトが起動できない

    Windows2000でコマンドプロンプトが正常に起動しません。 アクセサリの”コマンドプロンプト”からも、SYSTEM32のCMD.exeを起動しても、一瞬ウィンドウが立ち上がった後に終了してしまいます。 何かいい解決方法をご存知の方はいらっしゃいませんか。 よろしくお願いします。

  • コマンドプロンプト

     こんにちは。  APIを使用せずにVBでコマンドプロンプトが終了したかどうか(起動中かどうか)を知りたいのですが、なにか方法はあるでしょうか?

  • コマンドプロンプトの使い方

    コマンドプロンプトの使い方を人に教えてもらいたい場合、Linaxなどのスクールに行けばいいのでしょうか? もし、目次一覧などになっていてわかりやすいサイトがあれば教えてください。 ちなみに映画「ソーシャルネットワーク」でもコマンドプロンプトを使っていたのですが、ああいったWEBシステムを作るのにもコマンドプロンプトを使うのでしょうか? そしてそういったサイトを作る際にコマンドプロンプトでは何をしているのですか? PHPなどではなく、サーバー自体に直接プログラミングしているのでしょうか。

    • ベストアンサー
    • Java
  • コマンドプロンプトの実行

    こんにちは 先日Ipconfigを教えていただきまして、コマンドプロンプトから実行しています。 手順としては 1.コマンドプロンプトを起動する 2.Ipconfigをパラメータつきで実行 3.Ipconfigを別パラメータつきで実行 4.コマンドプロンプトを終了 となります。 これを予めコマンドプロンプトで実行させたい内容を書き込んだファイルを作っておき、 そのファイルをデスクトップ上とかに置き、クリック実行してコマンドプロンプトの処理を実行させる、ということができないでしょうか。 以上、よろしくお願いいたします。

  • コマンドプロンプトが起動できない

    コマンドプロンプトを起動するため、スタート->ファイル名を指定して実行 より「cmd」と実行したところ、通常の場合コマンドプロンプトが開くはずか 以下のようなエラーがポップアップダイアログに表示されました。 なぜか「cmd.com」になっています。 cmd.exedと入力するとコマンドプロンプトは正常に表示されました。 16 ビット MS-DOS サブシステム C:WINDOWS\system32\cmd.com NTVDM CPU は不正命令を検出しました。 CS:0002 OP:0f 02 f0 06 04 アプリケーションを終了するには、「閉じる」を選んでください。 [閉じる(C)] [無視(I)] 何かウィルスか何かによって攻撃されたのでしょうか? 宜しくお願いいたします。

専門家に質問してみよう