ページ 1 / 1
DOSプロンプトベースプログラムのERRORLEVEL
Posted: 2005年7月16日(土) 10:17
by あおぞら
いつもお世話になっております。
HTMLから情報を吸い出し、いろいろ処理しようとしています。使い慣れたsedとjgawkの方が手軽なので、バッチファイルに仕込んで動かしていますが、Active Basic修行の成果を少し盛り込みたくなり、DOSプロンプトベースのプログラムを作りはじめました。
ERRORLEVELをいじるには、どうすればいいのでしょう?
Re: DOSプロンプトベースプログラムのERRORLEVEL
Posted: 2005年7月16日(土) 14:53
by イグトランス
プログラムの終了するときにExitProcess関数を呼べば、その引数に渡した数値がエラーラベルになります。
ちなみにEndはExitProcess(0)と等価です。
Re: DOSプロンプトベースプログラムのERRORLEVEL
Posted: 2005年7月16日(土) 15:12
by tak
> プログラムの終了するときにExitProcess関数を呼べば、その引数に渡した数値がエラーラベルになります。
いえ、そのエラーレベルではないと思いますよ。
僕の記憶が正しければ、ERRORLEVEL はDOSのバッチファイルで使用される特殊な変数の名前で、一文字だけ入力を受け取ったときにその文字コードが格納される変数だったはずです。
たとえば、“よろしいですか(Y/N) > ”の後に入力カーソルがあり、'Y'と入力すれば、バッチファイル内で ERRORLEVEL に 89 が格納されます。(だったと思う)
ほかにも、これを使えば任意の選択肢を提供することも出来たような出来なかったような・・・実はよく覚えていません(爆)
単に入力を求めるだけならば Input命令を使えばよいのですが、実は問題があります。
一文字入力すれば即座に次の処理に移るというのがミソで、今調べている最中なのですが、これがなかなか難しいようで・・・
Re: DOSプロンプトベースプログラムのERRORLEVEL
Posted: 2005年7月16日(土) 16:01
by あおぞら
> プログラムの終了するときにExitProcess関数を呼べば、その引数に渡した数値がエラーラベルになります。
> ちなみにEndはExitProcess(0)と等価です。
いつもありがとうございますm(__)m。
「Cだとexit(0)だった気がするなあ・・・」と、うろ覚えで、exitやterminateの付いた関数を、試しておりましたが、試験用のバッチファイルに不備があり、泥沼に嵌っていました。お蔭様で、ようやく泥沼から脱出できました。プログラムからのエラーレベルの数値に従って、きちんと判定してくれます。
大昔のパソコン通信のオートパイロットのようなものに仕上げたいと思っています。
Re: DOSプロンプトベースプログラムのERRORLEVEL
Posted: 2005年7月16日(土) 16:09
by あおぞら
コメントありがとうございます。
> いえ、そのエラーレベルではないと思いますよ。
私もWeb検索で彷徨っているうちに、「そもそもエラーレベルって何だったっけ?」と訳が分からなくなっておりました。今回、アドバイスを頂き、ようやくExitProcessで一件落着する事ができました。
Re: DOSプロンプトベースプログラムのERRORLEVEL
Posted: 2005年7月16日(土) 16:12
by tak
あらぁ、そのエラーレベルでよかったのですね!? (^^;
DOSとかバッチファイルといったキーワードが並んでいたので、思いっきり勘違いしていました。
御迷惑をおかけしました。