オプション詳細

測定コマンドには以下の種類のオプションを指定できます。



測定種類の指定

▲オプション一覧   ▲TOP

本ツールで測定する測定種類を指定します。
各オプションはいずれか1つを指定する必要があります。
複数のオプションが同時に指定された場合、最後に指定したオプションが有効となります。
いずれも指定されなかった場合、"-row"オプションが指定されたものとして動作します。

指定方法 詳細
-row 基本行数を測定します。


  • ncmeter -row [オプション] infiles
指定ファイルおよび、指定されたフォルダー配下のサブフォルダーを含む、全ファイルの行数を測定します。
infiles には、測定対象のファイルかフォルダーが複数指定可能です。
infiles に何も指定されない場合、コマンドを終了します。
-diff 差分行数を測定します。

  • ncmeter -diff [オプション] oldfile newfile
対象ソースコードの差分行数を測定します。
プロパティファイルの、[INIT]項目内の"DIFF_PARSE"属性に指定された内容に応じて、差分行数をファイル単位または関数単位のいずれかの方法で測定を行います。

それぞれの場合の動作は、次の項目で説明します。

  • -diff_file
 :  ファイル単位の測定
  • -diff_func
 :  関数単位の測定
oldfile には、オリジナルのソースコードを指定します。
newfile には、変更後のソースコードを指定します。
ソースコードには、フォルダー、およびファイルが指定可能です。
ファイルを指定した場合はファイルの差分を、フォルダーを指定した場合は、フォルダー配下のサブフォルダーを含む、すべてのファイルの差分行数を測定します。

oldfile / newfile には、両方ともフォルダーを指定するか、両方ともファイルを指定する必要があります。
また、対象ファイル(フォルダー)には2つの対象ファイルを指定する必要があり、1つもしくは3つ以上の対象ファイルを指定された場合はエラーとして処理を中断します。
-diff_file オリジナルと変更後のファイルを比較し、差分行数をファイル単位で測定します。
-diff_func オリジナルと変更後のファイルを比較し、差分行数を関数単位で測定します。

言語種別がC(C言語)とCPP(C++言語)のファイルのみを測定します。
それ以外のファイルが指定された場合は、測定しません。測定結果にも出力されません。
-struct プログラムの複雑さに関する、構造メトリクスを測定します。

  • ncmeter -struct [オプション] infiles
ソースコードを解析し、構文構造の複雑さを、関数単位で測定します。
測定対象のファイルは、コンパイルしてエラーが出ない状態であることが必要です。

ファイルを指定した場合は、指定されたファイルを、フォルダーを指定した場合は、フォルダー配下のサブフォルダーを含む、全ファイルについて測定します。
infiles には、測定対象のファイルかフォルダーが複数指定可能です。
infiles に何も指定されない場合、エラーとして処理を中断します。

【実行例】


C:¥> ncmeter "C:¥sample"

C:¥sample フォルダー以下のファイルの基本行数を測定後、測定結果をncmeter.csvファイルに出力します。


C:¥> ncmeter -struct "C:¥sample"

C:¥sample フォルダー以下のファイルの構造メトリクスを測定後、測定結果をncmeter.csvファイルに出力します。


ソースコード整形方法の指定

▲オプション一覧   ▲TOP

整形を行うためにはuncrustify(オープンソースソフトウェア)の追加が必要です。
詳細は「readme.txt」を参照してください。

プログラマごとのコーディングスタイルの違いによる行数の測定値のばらつきを抑えるために、ソースコードのファイルをK&Rスタイルに整形して測定することができます。
整形できるのは、C/C++言語、Java言語※1です。
それ以外の言語では、「整形する」を選択しても整形は行いません。

ソースコードの整形方法は以下で説明するオプションで指定します。
各オプションはいずれか1つを指定する必要があります。
複数のオプションが同時に指定された場合、最後に指定されたオプションが有効となります。
いずれも指定されなかった場合、"-RESTYLE NONE"オプションが指定されたものとして動作します。

指定方法 詳細
-RESTYLE NONE ソースコードを整形せずに測定します。
-RESTYLE STD ソースコードをK&Rスタイルに整形して測定します。

ソースコード整形時にマルチステートメントを複数のシングルステートメントに分割をします。
整形されたソースコードは、元のソースコードとは別の一時処理用のフォルダー(ツールが実行時に生成します)に保存されますので、元のソースコードは変更されません。
-RESTYLE BOTH ソースコードを「整形する」、「整形しない」の両方で測定します。

測定結果ファイルには、整形した測定結果が最初に出力され、その後に整形していない測定結果が出力されます。

処理対象ファイル数などは、整形せず測定された測定結果が出力されます。
整形対象外の言語は、整形せず測定された測定結果が出力されます。

※1 Java言語は基本行数および差分行数のみ

【実行例】


C:¥> ncmeter -row -RESTYLE NONE "C:¥sample"

C:¥sample フォルダー以下のファイルの基本行数を整形せず測定し、測定結果をncmeter.csvファイルに出力します。


ファイルの指定

▲オプション一覧   ▲TOP

測定結果ファイルやプロパティファイルのパス名を指定することができます。
"-Tfo"オプション、"-Tfp" オプションの後は、空白あり/なしのどちらの指定も受け付けます。

指定方法 詳細
-Tfo<ファイルパス名> 測定結果ファイルの出力先フォルダーパスを指定します。
絶対パス、あるいはカレントフォルダーからの相対パスでの指定が可能です。

指定がない場合、カレントフォルダーに"ncmeter.csv"という名前の測定結果ファイルを出力します。
既にファイルが存在する場合は、ファイルが上書きされます。
-Tfo <ファイルパス名>
-Tfp<ファイルパス名> 本ツール実行時の動作を記述した、プロパティファイルのパスを指定します。
絶対パス、あるいはカレントフォルダーからの相対パスでの指定が可能です。

本オプションで指定されたプロパティファイルが存在しない場合にはエラーとなります。
本オプションが指定されていない場合、以下のフォルダー内の"ncmeter.properties"を順次検索します。

  1. カレントフォルダー(ツール実行時のフォルダー)
  2. インストール先フォルダー\etc\ncmeter
上記フォルダー内に存在しない場合、ツールの規定値で処理を行います。
ツールの規定値での処理の詳細については、「プロパティファイル」のプロパティファイルの属性に記載されている"記述がない場合の動作"を参照してください。
-Tfp <ファイルパス名>

【実行例】


C:¥> ncmeter -row -Tfo D:¥output.csv -Tfp custom.properties "C:¥sample"

カレントフォルダー("C:¥")にあるcustom.propertiesに記載されている設定情報を適用し、C:¥sampleフォルダー以下のファイルの行数を測定後、測定結果をD:\配下のoutput.csvファイルに出力します。


差分行数測定時の空白の扱い方指定

▲オプション一覧   ▲TOP

差分行数の測定時に空白行や空白文字の変更を測定するかどうかを指定します。

指定方法 詳細
-diff_blank=true 空白文字や空白行の変更を測定します。
-diff_blank=false 空白文字や空白行の変更を測定しません。※1

※1 空白文字や空白行を変更なしとする条件について
「プロパティファイル」章の"空白文字や空白行を変更なしとする条件について"を参照。

【実行例】


C:¥> ncmeter -diff -diff_blank=true "C:¥sample" "C:¥ncm"

C:¥sample フォルダー以下のファイルとC:¥ncm フォルダー以下のファイルの差分行数(空白文字と空白行の差分を測定する)を測定後、測定結果をncmeter.csvファイルに出力します。


C:¥> ncmeter -diff -diff_blank=false "C:¥sample" "C:¥ncm"

C:¥sample フォルダー以下のファイルとC:¥ncm フォルダー以下のファイルの差分行数(空白文字と空白行の差分を測定しない)を測定後、測定結果をncmeter.csvファイルに出力します。


表示関連

▲オプション一覧   ▲TOP

ツール実行時に役立つ情報を表示します。

指定方法 詳細
-v 現在の処理状況を表示します。
処理中のファイル名、ツールのバージョンを表示します。
処理中のファイル名は、以下のようなフォーマットで出力されます。測定種類などにより、表示が異なる場合があります。

処理中のファイル 表示フォーマット
測定対象 Target file. : <file-path>
測定対象外(ファイル条件) Unspecified language identifier file as measurement target. : <file-path>
測定対象外(バイナリファイル) The file has an unsupported language identifier.(Binary) : <file-path>
測定対象外(言語非対応) The file has an unsupported language identifier. : <file-path>

--help <表示言語> 本ツールの使用方法の説明を表示します。
コマンドヘルプは、英語および日本語に対応しています。
表示言語を省略した場合、OSの表示言語(Display Language)にしたがって、英語または日本語で表示します。
OSの表示言語に日本語以外が設定されていれば英語で表示します。

表示言語には次の指定できます。

  • en
 :  英語
  • ja
 :  日本語

上記以外が指定された場合、英語で表示します。
-debug 実行時の詳細ログと、エラーが発生した場合の詳細なエラーメッセージを表示します。
本オプションを指定しなくても、簡単なエラーメッセージは表示されます。

【実行例】


C:¥> ncmeter -row -v "C:¥sample"

処理状況をコンソールに出力してC:¥sample フォルダー以下のファイルの行数を測定後、測定結果をncmeter.csvファイルに出力します。


C:¥> ncmeter --help

測定をせず、本ツールの使用方法の説明を表示します。


測定結果ファイルのフォーマット指定

▲オプション一覧   ▲TOP

測定結果ファイルのフォーマットを指定します。
本オプションが複数回指定された場合、最後に指定されたオプションが有効となります。
いずれも指定されなかった場合、"-F csv"オプションが指定されたものとして動作します。

指定方法 詳細
-F csv 測定結果をCSV形式で出力します。
-F xml 測定結果をXML形式で出力します。

【実行例】


C:¥> ncmeter -row -F csv -Tfo output.csv "C:\sample"

基本行数を測定し、測定結果をCSV形式でoutput.csvファイルに出力します。


C:¥> ncmeter -row -F xml -Tfo output.xml "C:\sample"

基本行数を測定し、測定結果をXML形式でoutput.xmlファイルに出力します。


CSV形式の測定結果ファイルでの文字コード設定

▲オプション一覧   ▲TOP

CSV形式の測定結果ファイルで文字コードを指定します。
このオプションが複数回指定された場合、最後に指定されたオプションが有効となります。
オプションがいずれも指定されなかった場合、プロパティファイル(ncmeter.properties)の"CHARSET_OUT_CSV"属性の指定が有効となります。

指定方法 詳細
-Qrc <文字コード> CSV形式の測定結果ファイルで文字コードを指定します。
文字コードには、次の指定が可能です。

  • SYSTEM
 :  OSのシステムコードページ(CP_ACP)に従った文字コードで出力します。
  • UTF-8
 :  UTF-8(BOM付き)で出力します。
  • Shift_JIS
 :  Shift_JISで出力します。
  • EUC-JP
 :  EUC-JPで出力します。

【実行例】


C:¥> ncmeter -row -F csv -Qrc UTF-8 -Tfo output.csv "C:\sample"

基本行数を測定し、測定結果をUTF-8(BOM付き)のCSV形式でoutput.csvファイルに出力します。


測定ログの文字コード設定

▲オプション一覧   ▲TOP

測定ログの文字コードを指定します。
このオプションが複数回指定された場合、最後に指定されたオプションが有効となります。
オプションがいずれも指定されなかった場合、プロパティファイル(ncmeter.properties)の"CHARSET_OUT_LOG"属性の指定が有効となります。

コマンドプロンプトで表示可能な文字コードが、ログ出力時の文字コードと一致していない場合は文字化けする場合があります。

指定方法 詳細
-Qlg <文字コード> 測定ログの文字コードを指定します。
文字コードには、次の指定が可能です。

  • SYSTEM
 :  OSのシステムコードページ(CP_ACP)に従った文字コードで出力します。
  • UTF-8
 :  UTF-8(BOMなし)で出力します。
  • Shift_JIS
 :  Shift_JISで出力します。
  • EUC-JP
 :  EUC-JPで出力します。

【実行例】


C:¥> ncmeter -row -v -Qlg UTF-8 "C:\sample"

基本行数を測定し、測定ログをUTF-8(BOMなし)でコンソールに出力します。


C:¥> ncmeter -row -v -Qlg Shift_JIS "C:\sample" > log.txt

基本行数を測定し、測定ログをShift_JISで"log.txt"ファイルに出力します。