ページの先頭行へ戻る
Systemwalker Centric Manager/Systemwalker Software Delivery トラブルシューティングガイド資源配付編
FUJITSU Software

4.4.5 バッチファイルは正常に実行されているが適用異常となる

対象バージョンレベル

対処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以上の復帰コードの場合は分岐し、正しく異常終了ルートが走行するようになります。