PowerCOBOLでは、プロジェクトファイルに含まれるすべてのモジュールを、バッチモードでビルドまたはリビルドすることができます。(以降、バッチビルドと呼びます)
バッチビルドは、Windowsのコマンドプロンプト(DOSプロンプト)で実行します。
バッチビルドコマンドの指定形式
バッチビルドするためのコマンドは、以下の形式で指定します。
PowerCOB {/build|/rebuild} [/Debug|/Release] [/cbi:"翻訳オプションファイル名"] "プロジェクトファイル名"
ビルドまたはリビルドした結果は、プロジェクトファイルと同じフォルダに、"プロジェクト名.BLG"というファイル名で出力されます。
プロジェクトファイルに指定してある翻訳オプション(登録集フォルダおよび登録集名も含む)を無効にし、翻訳オプションファイルに指定した翻訳オプションを有効にします。このオプションが指定されていない場合は、外部COBOLファイルおよびスクリプトのプロパティ設定ダイアログボックスで指定されている翻訳オプションが有効になります。
ビルドまたはリビルドするプロジェクトファイル名です。ただし、PowerCOBOLのV3.0以前のバージョンで作成されたプロジェクトファイル(拡張子がPRJ)は、指定できません。
なお、Iレベル、Wレベルのエラーがある場合、またはすべて更新されている状態でビルドしたときにもビルドは成功します。バッチビルド完了後、ビルド結果を確認してください。
ポイント
バッチビルドのコマンド指定では、大文字と小文字の区別はありません。
バッチビルドの使用例を以下に示します。
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 をリンクしています... ** ビルドが成功しました **
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 本です. ** ビルドに失敗しました **
複数のプロジェクトファイルを一括してリビルドし、ビルドの結果を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を使用してください。