第5章 PowerCOBOLを使いこなそう
5.5 実行可能プログラム作成時および実行 時の便利な機能 時の便利な機能
5.5.9 バッチモードでビルドする
バッチビルドコマンドの指定形式
バッチビルドするためのコマンドは、以下の形式で指定します。
PowerCOB {/build|/rebuild}
[/Debug|/Release]
[/cbi: 翻訳オプションファイル名 ] プロジェクトファイル名
ビルドまたはリビルドした結果は、プロジェクトファイルと同じフォルダに、
"プロジェクト名.BLG"というファイル名で出力されます。
/build │ /rebuild
プロジェクトファイルに含まれるすべてのモジュールをビルドする場合は、
/buildを、リビルドする場合は、/rebuildを指定します。
/Debug │ /Release
デバッグモードでバッチビルドする場合は、/Debugを、リリースモードでバッ チビルドする場合は、/Releaseを指定します。
省略した場合、プロジェクトのプロパティ設定ダイアログボックスで指定され ているビルドモードになります。
/cbi:"翻訳オプションファイル名"
プロジェクトファイルに指定してある翻訳オプション(登録集フォルダおよび 登録集名も含む)を無効にし、翻訳オプションファイルに指定した翻訳オプシ ョンを有効にします。このオプションが指定されていない場合は、外部COBOL ファイルおよびスクリプトのプロパティ設定ダイアログボックスで指定され ている翻訳オプションが有効になります。
"プロジェクトファイル名"
ビルドまたはリビルドするプロジェクトファイル名です。ただし、PowerCOBOL のV3.0以前のバージョンで作成されたプロジェクトファイル(拡張子がPRJ)
は、指定できません。
復帰値
バッチビルドの復帰値は、以下のとおりです。
● ビルドに成功:0
● ビルドに失敗:1
なお、Iレベル、Wレベルのエラーがある場合、またはすべて更新されている状 態でビルドしたときにもビルドは成功します。バッチビルド完了後、ビルド結 果を確認してください。
バッチビルドのコマンド指定では、大文字と小文字の区別はありません。
バッチビルドの使用例
バッチビルドの使用例を以下に示します。
● 1つのプロジェクトファイルを、プロジェクトファイルに指定されてい るとおりにビルドします。
● 1つのプロジェクトファイルを、翻訳オプションファイルを指定し、デ バッグモードでリビルドします。
● 複数のプロジェクトファイルをリビルドし、ビルド結果を1つのファイ ルに出力します。
バッチビルドの使用例1
PowerCOBOLで作成したプロジェクトファイル"C:¥PROJ1¥PROJ1.PPJ"を、バッチ ビルドする場合、以下のように指定します。
powercob /build "c:¥proj1¥proj1.ppj"
バッチビルドの結果("C:¥PROJ1¥PROJ1.BLG")は、以下のようになります。
コンパイルのための型情報を作成しています...
c:¥proj1¥Main¥Debug¥MainForm.cob を作成しています...
最大重大度コードは I です。
c:¥proj1¥Main¥Debug¥MainForm.cob をコンパイルしています...
最大重大度コードは I で,翻訳したプログラム数は 1 本です.
c:¥proj1¥Main¥Debug¥Main.rc をリソースコンパイルしています...
c:¥proj1¥Debug¥Main.exe をリンクしています...
** ビルドが成功しました **
バッチビルドの使用例2
PowerCOBOLで作成したプロジェクトファイル"C:¥PROJ2¥PROJ2.PPJ"を、翻訳オ プションファイル"C:¥PROJ2¥PROJ2.CBI"を有効にして、デバッグモードでリビ ルドする場合、以下のように指定します。
powercob /rebuild /debug /cbi:"c:¥proj2¥proj2.cbi" "c:¥proj2¥proj2.ppj"
エラーがあった場合、バッチビルドの結果("C:¥PROJ2¥PROJ2.BLG")は、以下 のようになります。
コンパイルのための型情報を作成しています...
c:¥proj2¥sub1¥Debug¥sub1form.cob を作成しています...
最大重大度コードは I です。
c:¥proj2¥sub1¥Debug¥sub1form.cobをコンパイルしています...
** 診断メッセージ ** (SUB1FORM)
sub1form sub1form‑Opened(5):JMN2503I‑S 利用者語'data1'が定義されていま せん.
sub1form sub1form‑Opened(5):JMN2557I‑S DISPLAY文の書き方が不完全です.
最大重大度コードは S で,翻訳したプログラム数は 1 本です.
** ビルドに失敗しました **
バッチビルドの使用例3
複数のプロジェクトファイルを一括してリビルドし、ビルドの結果を1つのフ ァイルに出力する場合は、以下のようなバッチファイル"ALLBUILD.BAT"を作成 し、実行します。
ECHO OFF
ECHO ##### C:¥PROJ1¥PROJ1.PPJ ##### >> %2 ECHO POWERCOB /%1 "C:¥PROJ1¥PROJ1.PPJ"
START /WAIT POWERCOB /%1 "C:¥PROJ1¥PROJ1.PPJ"
IF ERRORLEVEL 1 ECHO !!! %1 Error !!!
TYPE C:¥PROJ1¥PROJ1.BLG >> %2
ECHO ##### C:¥PROJ2¥PROJ2.PPJ ##### >> %2 ECHO POWERCOB /%1 "C:¥PROJ2¥PROJ2.PPJ"
START /WAIT POWERCOB /%1 "C:¥PROJ2¥PROJ2.PPJ"
IF ERRORLEVEL 1 ECHO !!! %1 Error !!!
TYPE C:¥PROJ2¥PROJ2.BLG >> %2
ECHO ##### C:¥PROJ3¥PROJ3.PPJ ##### >> %2 ECHO POWERCOB /%1 "C:¥PROJ3¥PROJ3.PPJ"
START /WAIT POWERCOB /%1 "C:¥PROJ3¥PROJ3.PPJ"
IF ERRORLEVEL 1 ECHO !!! %1 Error !!!
TYPE C:¥PROJ3¥PROJ3.BLG >> %2
・
・
・ :END
実行するコマンドは以下のようになります。
allbuild rebuild c:¥temp¥allbuild.blg
実行が終了したら、バッチビルド結果("C:¥TEMP¥ALLBUILD.BLG")を確認して ください。
別のフォルダに移動したプロジェクトファイルをバッチビルドすると、「ビル ドまたはコンパイルのために、プロジェクトを保存しますか?」というメッ セージボックスが表示されます。この場合、メッセージボックスに応答しな いと処理が進まないため、バッチ的なビルドができなくなります。メッセー ジボックスを表示したくない場合、オプションのプロパティ設定ダイアログ ボックスの[ビルド]タブで、[ビルド時に自動的に保存する]をチェック状 態にしておきます。
なお、自動的に保存したくない場合は、チェックをはずすか、プロジェクト ファイルの属性を読み取り専用にしてください。
翻訳オプションファイルの作成方法
翻訳オプションファイルを作成するには、WINCOBコマンドを使用します。
WINCOBコマンドは、COBOLが提供しているCOBOLソースを翻訳するコマンドです。
このWINCOBコマンドを以下の指定形式で起動すると、[翻訳オプション]ダイ アログボックスが表示されます。ここで翻訳オプションを指定してください。
● 指定形式:WINCOB ‑iオプションファイルのパス名
● 使用例 :WINCOB ‑ic:¥proj2¥proj2.cbi
WINCOBコマンドについては、『NetCOBOL 使用手引書』を参照してください。
/cbiオプションを使用して登録集ファイルを変更する場合、翻訳オプション LIBを使用してください。