対象バージョンレベル
V5.0L10以降
対処1
確認ポイント
バッチファイルにdrmscmpコマンドが設定されていますか。
対処方法
バッチファイルを終了する処理ルートにdrmscmp -a script -c 0 コマンドを追加してください。
備考
drmscmpコマンド
ユーザが実行した処理の結果を、資源配付に通知します。
資源配付クライアントでは、バッチの実行結果を反映するために実行結果通知コマンドをバッチファイル内に設定する必要があります。実行結果通知コマンドは、資源配付クライアントのインストール時に“drmscmp.exe”というファイル名でインストールされています。
-a script
本コマンドの機能を定義します。本オプションは“script”と指定します。
-c 結果コード
結果コードを0~255の数値で指定します。結果コードとして0が通知された場合は、資源配付はバッチプログラムの実行が正常に完了したものとして扱います。1~255については、すべて異常として扱います。
対処2
確認ポイント
バッチファイルに記述しているIF文に誤りはありませんか。
対処方法
バッチファイルの内容に誤りがないか確認してください。調査は、バッチファイル内の各処理動作に対してファイルに処理結果をリダイレクトして、途中の動作状況を確認する方法があります。
事例
バッチファイルのIF文で、ERRORLEVELの判定誤りについての事例を示します。
判定誤りによりエラールートが走行することがないか確認してください。
良い例
AAA.EXE # 2以上の復帰コードの場合、ERR2へ飛ぶ IF ERRORLEVEL 2 GOTO ERR2 # 1以上の復帰コードの場合、ERR1へ飛ぶ #(ただし、2以上の復帰コードは前文で分岐しているので実質は1だけ) IF ERRORLEVEL 1 GOTO ERR1 drmscmp -a script -c 0 :ERR2 drmscmp -a script -c 2 :ERR1 drmscmp -a script -c 1
悪い例
AAA.EXE IF not ERRORLEVEL 0 GOTO ERR drmscmp -a script -c 0
現象
上記バッチを実行するとAAA.EXEでエラーが発生しても、正常終了する。
原因
“IF ERRORLEVEL 0”だけの記載の場合、0以上の復帰コードが対象となります。
これにnotがついているため、0以上の復帰コードは対象になりません。
対処方法
“IF not ERRORLEVEL 0”を“IF ERRORLEVEL 1”に変更することで、1以上の復帰コードの場合は分岐し、正しく異常終了ルートが走行するようになります。