コマンドライン


WinMergeのコマンドラインは、比較するパスに加えいくつかのパラメーターを受け付けます。これらのパラメーターのほとんどは、外部比較ツールとして使用したり、バッチファイルから比較操作を開始できるようにすることを目的としています。

WinMergeをコマンドラインから実行するには以下の書式のうちの1つを使用します:

WinMergeU [/?]

WinMergeU [/r] [/r-] [/e] [/f filter] [/m compare-method] [/t window-type] [/x] [/xq] [/s] [/sw] [/s-] [/ul] [/um] [/ur] [/u] [/wl] [/wm] [/wr] [/new] [/self-compare] [/clipboard-compare] [/minimize] [/maximize] [/fl] [/fm] [/fr] [/l linenumber] [/c charpos] [/table-delimiter delimiter] [/dl leftdesc] [/dm middledesc] [/dr rightdesc] [/al] [/am] [/ar] [/noninteractive] [/noprefs] [/enableexitcode] [/ignorews] [/ignoreblanklines] [/ignorecase] [/ignoreeol] [/ignorecodepage] [/ignorecomments] [/unpacker unpacker-name] [/prediffer prediffer-name] [/cp codepage] [/fileext file-extension] [/cfg name=value] [/inifile inifile] leftpath [middlepath] rightpath [/o outputpath] [/or reportpath]

WinMergeU conflictfile

パラメーターなしかパス名を入力すると単にWinMergeウィンドウを開きます。パラメーターは、スラッシュ( / ) か、ダッシュ ( - ) 文字が前に付加されます。パス名にはプリフィックス文字を付加しません。

/?

このトピックのWinMergeヘルプを開きます。

/r

すべてのサブフォルダー内のすべてのファイルを比較します(再帰比較)。ユニークフォルダー (片方のみ存在するフォルダー)は、分離された項目として比較結果内にリストされます。サブフォルダーまで含めるとかなり比較時間が増大してしまうことに注意してください。このパラメーターを指定しなかった場合、WinMergeは比較するフォルダー内のファイルとトップレベルのサブフォルダーのみリストします。サブフォルダーの中までは比較しません。

/r-

指定されたフォルダー内のすべてのファイルを比較しますが、そのサブフォルダー内のファイルとサブフォルダーは除外します。これにより、比較時間を短縮することができます。

/e

EscキーでWinMergeが閉じるようにします。WinMergeを外部比較アプリケーションとして使用する場合に便利です。(ダイアログのようにすばやくWinMergeを閉じることができます) この引数を指定しなかった場合、すべてのウインドウを閉じるのに何回もEscキーを押さなければならないことになるかもしれません。(2つ以上タブが開かれている場合、一回のESCキーの押下でWinMergeが終了してしまうのを期待している人はいないような気がしたので、日本語版ではこのオプションを指定しても2つ以上タブが開かれている場合は1つのタブを閉じるだけにし、タブが1つの時またはタブが一つもない時にWinMergeを終了するようにしました)

/f

比較を制限するために、指定したフィルターを適用します。フィルターは*.h *.cppのようなファイルマスクか、XML/HTML Develのようなファイルフィルターの名前です。スペースを含むフィルターマスクやフィルター名はダブルクォーテーションマークで括ってください。

/m compare-method

フォルダー比較方法を指定します。次のキーワードが指定できます。Full, Quick, Binary, Date, SizeDate, Size, Existence

/t window-type

ファイルを表示するウィンドウの種類を指定します。次のキーワードが指定できます。 Text, Table, Binary, Image, Webpage

/x

同一ファイルの比較をしたときにWinMergeを閉じます。(情報ダイアログを表示した後) このパラメーターは比較後に効果がなくなります。例えば、もしファイルがマージか編集の結果として同一となった場合です。このパラメーターは、WinMergeを外部アプリケーションとして使用したり、差異のないファイルを無視することによって余分なステップを取り除きたい場合に便利です。

/xq

オプション /x に似ていますが、同一ファイルであってもメッセージボックスを表示しません。

/s

WinMergeウィンドウを1つのインスタンスに制限します。例えば、WinMergeが既に実行中ならば、新しい比較は同じインスタンス内で実行されます。この引数を指定しなかった場合、複数のウィンドウが開かれる可能性があります: 設定によっては、新しい比較が既に存在するウィンドウで実行されることも新しいウィンドウで実行されることもあります。

/sw

/s と同様にWinMergeウィンドウを1つのインスタンスに制限します。ただし、ウインドウを表示しているインスタンスが終了するまで待機します。

/s-

"複数のインスタンスを起動しない"の設定値を無視して、常に別のインスタンスが起動されるようにします。

/ul

左側パスが最近使用した項目(MRU)リストに追加されるのを防ぎます。外部アプリケーションは、ファイルまたはフォルダーの選択ダイアログのMRUリストにパスを追加するべきではありません。

/um

中央のパスが最近使用した項目(MRU)リストに追加されるのを防ぎます。外部アプリケーションは、ファイルまたはフォルダーの選択ダイアログのMRUリストにパスを追加するべきではありません。

/ur

右側パスが最近使用した項目(MRU)リストに追加されるのを防ぎます。外部アプリケーションは、ファイルまたはフォルダーの選択ダイアログのMRUリストにパスを追加するべきではありません。

/u

(または/ub) 各々(左、右、中央)のパスが最近使用した項目(MRU)リストに追加されるのを防ぎます。外部アプリケーションは、ファイルまたはフォルダーの選択ダイアログのMRUリストにパスを追加するべきではありません。

/wl

読み取り専用として左側を開きます。比較時、左側を変更したくない場合に使用してください。

/wm

読み取り専用として中央を開きます。比較時、中央を変更したくない場合に使用してください。

/wr

読み取り専用として右側を開きます。比較時、右側を変更したくない場合に使用してください。

/new

新規ブランクウィンドウを開きます。

/self-compare

指定された1つのファイルとそのファイルのコピーを比較します。

/clipboard-compare

クリップボード履歴の直近2つの内容を比較します。

/minimize

最小化状態でWinMergeを開始します。このオプションは長時間かかる比較を行う場合に便利です。

/maximize

最大化状態でWinMergeを開始します。

/fl

起動時、左側にフォーカスを当てます。

/fm

起動時、中央にフォーカスを当てます。

/fr

起動時、右側にフォーカスを当てます。

/l linenumber

ファイルを読み込んだ後にジャンプする行番号を指定します。

/c charpos

ファイルを読み込んだ後にジャンプする文字位置を指定します。

/table-delimiter delimiter

テーブル編集用の区切り文字を指定します。タブ文字を指定する場合、「tab」または「\t」、「\x09」を指定してください。

/dl

左側タイトルバーの説明を指定します。デフォルトのフォルダーやファイル名テキストに上書きされます。例: /dl "Version 1.0" や /dl WorkingCopy. スペースを含む説明はダブルクォーテーションマークで括ってください。

/dm

/dlと同様に中央タイトルバーの説明を指定します。

/dr

/dlと同様に右側タイトルバーの説明を指定します。

/al

起動時、左側で自動マージします。

/am

起動時、中央で自動マージします。

/ar

起動時、右側で自動マージします。

/noninteractive

比較やレポート生成の際にメッセージボックスを表示せずに WinMerge を実行します。処理が完了すると自動的に終了するため、バッチ処理やスクリプトでの実行に適しています。

/noprefs

レジストリから設定を読み込まず、また保存もせずに WinMerge を実行します。すべての比較はデフォルトの設定のみを使用します。

/enableexitcode

比較結果をプロセス終了コードに設定します。0: 同一, 1: 差異あり, 2: エラー

/ignorews

「空白」オプションを永続的に制御します:

  • /ignorews:0 - 空白の違いを無視しません。

  • /ignorews または /ignorews:1 - 空白の量の違いを無視します。

  • /ignorews:2 - すべての空白文字を無視します。

/ignoreblanklines

「空行を無視する」オプションを永続的に制御します:

  • /ignoreblanklines:0 - 空行を無視しないようにします。

  • /ignoreblanklines または /ignoreblanklines:1 - 空行を無視するようにします。

/ignorecase

「大文字小文字を区別しない」オプションを永続的に制御します:

  • /ignorecase:0 - 大文字小文字の違いを無視しません。

  • /ignorecase または /ignorecase:1 - 大文字小文字の違いを無視します。

/ignoreeol

「改行文字の違いを無視する」オプションを永続的に制御します:

  • /ignoreeol:0 - 改行コードの違いを無視しません。

  • /ignoreeol または /ignoreeol:1 - 改行コードの違いを無視します。

/ignorecodepage

「コードページの違いを無視する」オプションを永続的に制御します:

  • /ignorecodepage:0 - コードページの違いを無視しません。

  • /ignorecodepage または /ignorecodepage:1 - コードページの違いを無視します。

/ignorecomments

「コメントの違いを無視する」オプションを永続的に制御します:

  • /ignorecomments:0 - コメントの違いを無視しません。

  • /ignorecomments または /ignorecomments:1 - コメントの違いを無視します。

/unpacker プラグインパイプライン

Unpacker プラグインのプラグインパイプラインを指定します。例: /unpacker "SortAscending|SelectLines 1-10"

/prediffer プラグインパイプライン

Prediffer プラグインのプラグインパイプラインを指定します。例: /prediffer "IgnoreColumns 1-10"

/cp コードページ

ファイル比較に使用するコードページを指定します。例: /cp 65001

/fileext ファイル拡張子

シンタックスハイライトの種類を決定するため、ファイル拡張子を指定します。

/cfg 名前=値

WinMerge のレジストリまたは INI ファイルに設定値を設定します。

例: /cfg Settings/DiffAlgorithm=3

セクション名が曖昧でなく、他の設定名と衝突しない場合、省略できます:

/cfg DiffAlgo=3

注意: この項目では利用可能な設定名について説明していません。設定の一覧は regedit の HKEY_CURRENT_USER\Software\Thingamahoochie\WinMerge を参照してください。

leftpath

左側で開くフォルダーやファイルを指定します。

middlepath

中央で開くフォルダーやファイルを指定します。

rightpath

右側で開くフォルダーやファイルを指定します。

WinMergeは、ファイルとフォルダーを比較できません。そのためパスパラメーター両方(または3つすべて)(leftpath と(middlepath と)rightpath) には、同じ種類(フォルダーかファイルのどちらか)を指し差なければなりません。もし、WinMergeが指定したパスのどちらかを見つけることができなければ、ファイルまたはフォルダー選択ダイアログを開きます。ファイルまたはフォルダー選択ダイアログでは、正しいパスを選択できます。

ティップ

ファイル比較では、パスパラメーターの一つとしてフォルダー名を指定できます。ただし、フォルダーは他方のファイル名と同じファイルを含んでいる必要があります。

例えば、以下のコマンドを考えます:

WinMergeU C:\Folder\File.txt C:\Folder2

もし、C:\Folder2がファイル名File.txtを含んでいれば、WinMergeは、暗黙的にファイル指定として第二のパスを解決します。当然ながら、C:\Folder2がファイル名File.txtを含んでいなければ、コマンドは不正とみなされます。

/o outputpath

マージした結果のファイルを保存するオプションの出力ファイルパスを指定します。

出力パスはコマンドラインからWinMergeを開始する時まれにしか必要となりません。それはバージョンコントロールツールとともに使用されることになります。結果ファイルとして出力パスを指定する必要があるかもしれません。もし、出力パスを指定した場合、あるペインを変更後保存すると、変更は出力パスのファイルに保存され、元ファイルは前の状態のままになります。

バージョンコントロールシステムは一般的にtheirsminemergedかまたはresolvedのような用語を使用し元と結果ファイルを参照します。もし、WinMergeコマンドラインに出力パスを指定し、バージョンコントロールシステムと連携するならば、この順番でファイルを並べるべきです。

/or outputpath

ファイルまたはフォルダの比較レポートを出力します。例: WinMergeU path1 path2 /or c:\tmp\report.html

このオプションは以下と組み合わせて使用すると便利です:

  • /noninteractive - レポート出力後に WinMerge を終了します。

  • /minimize - WinMerge を最小化状態で開始します。

  • /noprefs - 現在の設定を無視し、デフォルトの設定を使用します。/cfg による変更は一時的なものとなり保存されません。

以下の /cfg 設定も便利に使えます(将来パラメータ名が変更される可能性があります):

ファイル比較の場合:

  • /cfg Settings/DiffContextV2=0 - レポートで一致している行を非表示にします (「表示 → Diff コンテキスト → 0 行」と同等)。

  • /cfg Settings/ViewLineNumbers=1 - 行番号を出力します(0 にすると非表示)。

フォルダ比較の場合:

  • /cfg Settings/DirViewExpandSubdirs=1 - サブフォルダを自動的に展開します。

  • /cfg ReportFiles/ReportType=2 - レポート形式: Simple HTML。

  • /cfg ReportFiles/IncludeFileCmpReport=1 - ファイル比較レポートを含めます。

conflictfile

コンフリクトファイルを指定します。コンフリクトファイルは通常バージョンコントロールシステムによって生成されます。コンフリクトファイルはファイル比較ウインドウで開かれ、「コンフリクトファイルの解決」で説明している様にマージやコンフリクトを解決することができます。コンフリクトファイルと共に他のパスは使用できないことに注意してください。

/inifile inifile

レジストリの代わりに設定の読み込みと保存に使用するINIファイルを指定します。