Home > 2011年11月

2011年11月 Archive

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
  • Comments (Close): -
  • TrackBack (Close): -

nyacusで%ERRORLEVEL%をとると常に0が返る件

  • Posted by: Nakunaru
  • 2011-11-03 Thu 17:06:43
  • メモ
nyacusでアプリケーションの終了コードが取得できない件

sqlplusでスクリプトの実行時に、正常終了できたかを確認するために、以下のような設定ができる。

SQL > WHENEVER SQLERROR EXIT SQL.SQLCODE



これにより、エラー発生時に、終了コードにエラーコードをセットしてsqlplusが終了する。
また、sqlplusをexitで終了する際に、「exit 1」などとすると、手動で終了コードを変更できる。
あとはOS側で、終了コードを確認することで正常終了かどうか判別することになる。
unix系のOSなら「$?」、winなら「%errorlevel%」

で、今作成しているスクリプトでもこの機能を使っていたんだけど、Cygwinでは「$?」で終了コードが
とれるのに、dos側では何故か終了コードが常に0で返ってくる現象に遭遇。

sqlplus /nolog

SQL> exit 1

echo %errorlevel%
0


なんでだろう、ということで単純なコマンドでも試してみた

type aaaaaa
指定されたファイルが見つかりません。

echo %errorlevel%
0


なんだかおかしい。
ということで右往左往していたのですが、私のdos環境は、
http://hitai.blog72.fc2.com/blog-entry-77.html
でも書いたようにCKWというツールを被せています。
そんで、CKW+CygwinとCKW+nyacusの2つを使い分けていたのですが、どうも%errorlevel%がとれないのは
nyacus側の不具合っぽい。
試しに、生のcmd.exeで試してみると、問題なく%errorlevel%が取得できます。

それでnyacus側のバグ情報を探そうと思ったら、今使っているのは古いバージョンで、最新では
nyaosに統合されているとか。
http://www.nyaos.org/

それじゃぁ早速新しいバージョンにしてみましょうということでDLして試すと、今度は問題なく%errorlevel%が取れました。

後はCKWから呼び出すシェルをnyacusからnyaosに変えておけばいいので
CKW.cnfの「Ckw*exec: nyacus.exe」を「Ckw*exec: nyaos.exe」に修正して解決です。

ついでに、nyaosのデフォルトのプロンプトがちょっと気に入らなかったので
http://childs.squares.net/program/nyaos/basic.html
ここを参考に変更してみたり。


関連: http://hitai.blog72.fc2.com/blog-entry-76.html

Index of all entries

Home > 2011年11月

タグクラウド
Categories
Monthly
Recent Entries
Recent Comments
Recent Trackbacks
Appendix

Nakunaru

    Author:Nakunaru

    データベース(ORACLEとかSQL ServerとかDB2とかMySQLとか)とか技術者教育とかプログラムとか。
    気になる技術を少しずつ勉強していきます。


Return to page top

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。