• 締切済み

コマンドプロンプトのERRORLEVEL

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

  • HMID
  • お礼率75% (3/4)

みんなの回答

  • deadline
  • ベストアンサー率63% (1239/1943)
回答No.1

"ERRORLEVEL"は、プログラム内で設定された『リターンコード』(通常、正常終了した時に"0"、異常終了した時に"0"以外を返すように設定する)ですから、 指定されたファイルが見つからない⇒異常終了⇒"0"以外を返す で、"1"が表示される2000の方が正常です。ですから、"0"を返すNT/XPの『コマンドプロンプト』にバグがあるような気がしますが・・・。 >2000でも0にする方法はありますでしょうか? "set"コマンドで、強制的に"ERRORLEVEL"に"0"なり"1"なりを設定すれば良いかと・・・。 set ERRORLEVEL=0

関連するQ&A

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

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

  • bat サブルーチンのERRORLEVELについて

    バッチのサブルーチンのERRORLEVELについて質問です。 サブルーチン内でERRORLEVELを返すコマンドを実行したいのですが、 親ルーチンにそのERRORLEVELを共有したくない場合、何か方法はありますか? ============================================================ [1.bat] SET MSG1="NOTFOUND" SET MSG2="found!" echo %ERRORLEVEL% FIND %MSG1% 2.bat REM %ERRORLEVEL%は1に echo %ERRORLEVEL% CALL :LOG echo %ERRORLEVEL% FIND %MSG2% 2.bat REM %ERRORLEVEL%は0に echo %ERRORLEVEL% CALL :LOG echo %ERRORLEVEL% REM %ERRORLEVEL%は0であって欲しいが0に pause EXIT 1 :LOG FIND %MSG1% hogehoge.log REM %ERRORLEVEL%は1に ============================================================ [2.bat] found! ============================================================ [hogehoge.log] 空 ============================================================

  • コマンドプロンプトについて

    Windows2000やXPにおける、コマンドプロンプトについてお伺いします。 よく使うコマンドなどを、Windowsのアイコンをクリックしただけで実行できるようにしたいのですができますか? どうすればいいのでしょうか? 例えば、私はipconfigをよく使うのですが、コマンドプロンプトを開いていちいちrenewやreleaseといったことを、その度々に打ち込まないといけないのですが、これを省略して、アイコンを作って、それをクリックするだけで実行できたらいいなと思っています。 こういうことができるかどうか、また、やり方など教えてください。よろしくお願いします。

  • コマンドプロンプトからのcmd実行について

    現在VBSでオブジェクトを定義しrunを使いcmd経由で他のバッチ・VBS・ソフトの起動をやっています。 ふととあるパスが実行できませんでした。 そこで別途個別にコマンドプロンプトだけで実行してみましたがやはりうまく処理できません。 [echo.bat] echo test pause [コマンドプロンプト] rem その1 cmd /K c:\temp\a\echo.bat rem その2 cmd /K C:\Temp\(a\echo.bat その1の結果 C:>cmd /K C:\Temp\a\echo.bat C:>echo test test C:>pause 続行するには何かキーを押してください . . . その2の結果 C:>cmd /K C:\Temp\(a\echo.bat 'C:\Temp\' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 C:> 上記のように1は正常に処理され2はうまく処理されません。 解決策をひたすら検索したのですが見つからず なんとなくだいたい分かったのが一部『(』や『)』や『&』や『@』や『^』などの記号が混じるとどうやらうまく処理できないようです。 なぜ処理できないのか?と、如何すればこれを回避して実行できるか分かる方がいればよろしくお願いします。 備考: (現状の緊急回避として記号のあるパスは記号のないパスから経由batを生成する方法を思いつきましたが自分で馬鹿だと思います) (経由バッチの中身が"C:\Temp\(a\echo.bat"ならば実行できるから) また、cmd /K "C:\Temp\(a\echo.bat" では実行できませんでした。 OSはXPです。コマンドプロンプトヴァージョンは(Microsoft Windows XP [Version 5.1.2600])です

  • コマンドプロンプトの拡張

    UNIX系であればコマンド実行にTeraTermなどを使用していますが、Windowsでコマンド実行する際は標準のコマンドプロンプトを使用しています。 ですがコマンドプロンプトは非常に使いにくいです。 そこでコマンドプロンプトのコンソールを拡張したような何かいいソフトウェアはありませんでしょうか? 尚、Cygwinの存在は知っていますがもう少し手軽に使いたいと考えています。  どうぞよろしくお願いします。

  • コマンドプロンプトについて

    コマンドプロンプトのコマンドに『set』があります。 2000/XPにおいては、オプションで[/P]を指定することによりキーボードからの入力を変数にセットできますがWindowsNTにおいても使用することが出来るのでしょうか?(キーボード入力によって実行する処理を変えたい) また、不可能である場合他の方法があればご教授していただけるようお願いします。

  • コマンドプロンプトについて

    javaの入門書を読みながらjavaの学習をしています。 コマンドプロンプトのウィンドウについて質問致します。 最初にコマンドプロンプトにて以下のコマンドを実行しコンパイルします。 javac Helloworld.java 次に以下のコマンドで実行します。 java Helloworld すると実行結果が表示されず新しいウィンドウが開いてしまいます。 最初のウィンドウには「続行するには何かキーを押してください . . .」 と表示されています。 これはコマンドプロンプトの設定がおかしいのでしょうか? コンパイルは通っているので実行後、HelloWorldと表示されるはずなのですが・・・。 何卒、御教授願います。

  • コマンドプロンプトの時間がかかる処理のあとの、処理について。

    W2Kで、コマンドプロンプトで、エンコード等の重い処理の後の処理を、させる時には、どうなっているのでしょうか? 時々、コマンドプロンプト経由のエンコードの処理が、コマンドプロンプトで止まってしまうので、これが、正常のエンコードができなかったのか(エンコード結果は、正常に思える)それとも、コマンドプロンプトの仕様なのか、分かりません。 コマンドプロンプト エンコードでの処理(長い処理 echo 1 echo 2 これが、エンコード直後で終わってしまって、echo 1が表示されなくって。 エンコードを手動で止めても、途中で処理が終わるので、エンコードが失敗しているのかな?

  • コマンドプロンプト

    質問させていただきます。 WindowsXp PRO(DELL デスクトップ) を使用しております。 コマンドをたたきたいのですが、どこを探しても「コマンドプロンプト」が見当たりません。どこにあるのか教えてください。 ちなみに、ノートPCもWindows Xp PROですが、こちらはアクセサリにあります。

  • コマンドプロンプト の表示が出来ない?

    DELL INSPIRON5100 を使用しています。 コマンドプロンプトを表示させたいのですがうまく表示できません。 スタート → 「ファイル名を指定して実行」 → 『ipconfig』と入力 → OK  で表示できると思うのですが 瞬間的にコマンドプロンプト画面(真っ黒画面)が瞬間的に表示してすぐ消えてしまいます。 表示方法が間違っているのでしょうか? なお、 別方法で  スタート → すべてのプログラム → アクセサリー → コマンドプロンプト  とたどりつけるはずですが「コマンドプロンプト」の項目がありません。 心当たりの一つとして XPパソコンで動作が大変遅いので使用しない余計なソフト(例、ソリティアなどのゲーム)を削除したことがありますがそのときに間違えて削除してしまったのかもしれません 表示方法があれば教えて下さい。