ファイルやフォルダー比較の際、比較範囲を限定するためにファイルフィルターを使用することができます。 これは、比較結果から、あなたが興味のない差異を取り除きたい場合に便利です。 フィルターは、正規表現を元に規定します。 WinMerge は、ポピュラーな PCRE (Perl Compatible Regular Expressions) 正規表現エンジンを使用しています。
フィルターの基本機能はシンプルです。 通常比較されるであろう、それぞれのアイテム(フォルダー、ファイル、ファイル中の行)を評価し、 対象のアイテムがフィルター式にマッチした場合、フィルターを適用します。 フィルタータイプにより、アイテムは、比較に含められるか、除外されるかのどちらかです。
フォルダー比較用とファイル比較用の異なるWinMergeフィルターがあります。
単純なファイルマスク、または、より複雑なフィルターにより、 ファイルフィルター中で指定された複数の規則を適用することで、 フォルダー比較中に含めるファイルを指定することができます。
フィルターされるファイルやフォルダーは、デフォルトで隠されます。それは、典型的にあなたが望むものでしょう。フィルターされたアイテムを表示するには、
→ をクリックしてください。しかし、フォルダー比較ウィンドウは、それらについて最小限の情報しか表示しません。例えば、あなたは、スキップされたファイルがテキストファイルかバイナリファイルか判らないでしょう。行フィルターは、ファイル比較操作のみに適用されます。 それにより、単一行の差異を無視することができます。
置換フィルターは、ファイル比較操作のみに適用されます。 置換フィルターは、diffブロック内の文字列を指定された文字列に置換して比較し、 結果が一致する場合はそのdiffブロックを無視します。 これは、興味のない多数の変更を無視するのに役立ちます。
フォルダー比較で含めるファイル拡張子を指定するために、1つ以上のファイルマスクを使用できます。その他のファイルは選択対象から除外されます。
フォルダー比較操作を実行時に、ファイルマスクを定義し適用する:
ファイルまたはフォルダーの選択ダイアログを使用しているなら、 1(左)と 2(右)のフォルダー選択後、 フィルターフィールドへ、 1つか複数のファイルマスクを入力してください。 マスクは、フォルダー比較操作を開始した時に適用されます。
WinMergeのコマンドラインを使用している場合は、ファイルマスクを指定する
-f
フラグ(次のセクションの例を参照)を使用してください。
ファイルマスクや拡張フィルターは以下の形式で指定できます:
グループ1のフィルター1
;フィルター2
...|グループ2のフィルター1
;フィルター2
...|...
|
文字はフィルターグループを区切り、論理 AND として機能します。
同じグループ内のフィルターは ;
で区切られ、論理 OR として解釈されます。
ファイルは各グループ内の少なくとも1つのフィルターに一致する場合にのみ含まれます。
f:
や f!:
など、ダブルクォートで囲まれていない正規表現内で
|
(パイプ)文字をリテラルとして使用したい場合は、代わりに ||
を使用してください。
例: f:(abc||def)\.txt$
各フィルター(例: Filter1, Filter2)は、以下のいずれかのタイプにすることができます:
*.ext
拡張子によるファイルマスク(例: *.txt)
*.
拡張子のないファイル(例: README)
*.ext
指定した拡張子に一致するファイルを除外(2.16.19 以降で使用可能)
folder
\対象フォルダー(末尾は必ず \ にする)(2.16.19 以降で使用可能)
folder
\一致するフォルダーを除外(2.16.19 以降で使用可能)
正規表現
正規表現を使用してファイル名を一致(2.16.49 以降で使用可能)
正規表現
正規表現に一致するファイルを除外(2.16.49 以降で使用可能)
正規表現
正規表現を使用してフォルダー名を一致(2.16.49 以降で使用可能)
正規表現
正規表現に一致するフォルダーを除外(2.16.49 以降で使用可能)
式
ファイルに対するフィルター式(例: fe:Size < 1KB)(2.16.49 以降で使用可能)
式
ファイルを除外するためのフィルター式(2.16.49 以降で使用可能)
式
フォルダーに対するフィルター式(2.16.49 以降で使用可能)
式
フォルダーを除外するためのフィルター式(2.16.49 以降で使用可能)
ファイルフィルター名
名前でファイルフィルターを適用(2.16.49 以降で使用可能)
例1 ファイルマスク
このコマンドラインの例では、フォルダー比較操作は拡張子 xml
または
txt
のファイルのみを対象とし、それ以外のファイルは省略されます。
WinMergeU c:\project\docs c:\temp /f *.xml;*.txt
例2 フォルダーの除外(2.16.19以降)
このコマンドラインの例では、フォルダー比較操作は、 .git
と
.vs
フォルダーを除外します:
WinMergeU c:\project\docs c:\temp /f !.git\;!.vs\
例3 フィルター式(バージョン 2.16.49 以降)
このコマンドラインの例では、フォルダー比較操作は cpp
または h
の拡張子を持ち、かつサイズが 1KB 未満のファイルのみを対象とします:
WinMergeU c:\project\docs c:\temp /f "*.cpp;*.h|fe:Size <
1KB"
WinMerge では、ファイルのメタデータ、内容、比較コンテキストに対して動作する強力なフィルタ式を使用できます。本セクションでは、サポートされる属性、演算子、関数、データ型、および評価ルールについて説明します。
サポートされるリテラルの型は以下の通りです:
Boolean: true
,
false
Integer: 64ビット符号付き整数 (例: 1024
,
100KB
, 7days
などの単位付きも可能)
String: ダブルクォートで囲まれた文字列 (例:
"example"
)
内部的に扱われる型は以下の通りです: Boolean, Integer, Timestamp, String, File Content, Array,
or undefined
.
フィルタ式では、ファイルのメタデータや内容を参照する多様な属性が利用できます。属性名の大文字・小文字は区別されません。必要に応じて、比較対象のどの側(Left, Right, Middle)かを接頭辞で指定できます。
ファイルが存在する場合は true
を返し、存在しない場合は false
を返します。
ファイル名
ファイル拡張子
ファイル名およびベースフォルダーを除いた相対パスを返します。
ファイルのフルパスを返します。
ファイルサイズ
最終更新のタイムスタンプ
yyyy-MM-dd
形式の最終更新日付の文字列を返します。
作成日時のタイムスタンプを返します。
ファイル属性を整数値で返します。
ファイル属性の文字列を返します。例:"R"
は読み取り専用、"H"
は隠しファイル、"A"
はアーカイブ、"S"
はシステムファイルを示します。
ファイルの内容を表します。FileContent 型の値を返します。この型には contains
および
recontains
のみ使用できます。
比較対象のファイルの側を指定するために、接頭辞を追加できます:
Left: 左側のファイルに適用されます(例: LeftSize
)
Right: 右側のファイルに適用されます(例: RightDate
)
Middle: 3方向比較における中央のファイルに適用されます(例:
MiddleName
)
接頭辞のない属性(例: Size
)は、左・中央・右のすべての側の値を含む配列を返します。
接頭辞のない属性(例:
Size
)は、左・中央・右のすべての側からの値を含む配列を返します。これらの配列に対して演算子を適用する場合、比較対象がスカラーか他の配列かによって動作が異なります。
配列とスカラーを比較する場合、演算は各配列要素に対して個別に適用され、結果はブール値の配列になります。このブール配列に
true
が1つでも含まれていれば、全体の評価結果は true
になります。すべてが false
であれば false
になります。
2つの配列を比較する場合、挙動は演算子によって異なります:
=
および !=
の場合:配列の長さが同じである必要があります。結果は配列ではなく単一のブール値になります。=
はすべての要素が一致する場合のみ true
を返し、!=
はいずれかの要素が異なる場合に true
を返します。
他のすべての演算子(例: >
,
<
)では、各要素ごとに演算が適用され、ブール値の配列が生成されます。この配列に
true
が1つでも含まれていれば、式全体の評価結果は true
になります。すべてが false
の場合は false
になります。
例5 例
[2, 4] = [2, 4] -> true
[2, 4] != [2, 5] -> true (4 != 5 だから)
[3, 5, 8] > [6, 4, 2] -> [false, true, true] -> true (少なくとも1つの比較が true だから)
=
、!=
、like
、matches
、contains
、recontains
などの文字列比較演算子は、現在すべて大文字小文字を区別しません。
<
, <=
, >
,
>=
数値、タイムスタンプ、または文字列の比較
=
等価比較
!=
不等比較
+
, -
, *
,
/
, %
算術演算子。+
と -
は加算および減算、*
と /
は乗算および除算、%
は剰余演算(余り)を行います。
and
, or
, not
論理演算子
like
ワイルドカードによる文字列一致
not like
を使用して逆の一致条件を指定することもできます。
matches
正規表現による一致
not matches
を使用して一致しない条件を指定することもできます。
contains
文字列が部分文字列を含んでいるかを判定します
not contains
を使用して部分文字列が含まれていないことを確認できます。
recontains
いずれかの部分文字列が正規表現に一致するかを判定します
not recontains
を使用して一致しないことを確認できます。
content
)ファイル内容またはファイル内容の配列の行数を Integer
として返します。content
が配列の場合、結果は整数の配列になります。例:
lineCount(Content)
content
,
start
, count
)
ファイル内容またはファイル内容の配列から、指定した開始行から指定行数の行を抽出し、連結した文字列として返します。content
が配列の場合、結果は文字列の配列になります。
source
)文字列の長さを Integer
として返します。source
が文字列の配列である場合、結果は整数の配列になります。例: strlen(Name)
source
, start
,
count
)文字列または文字列の配列 から指定範囲の文字列を String
型で返します。source
が文字列配列の場合、結果は文字列配列になります。例:
substr(Name, 0, 3)
現在の日時を Timestamp
型の値として返します。
本日の日付を、日の始まりである 00:00:00.000
を表す
Timestamp
型として返します。
timestamp
)週の初日(日曜日)を返します。ロケールには依存しません。
timestamp
)月の初日を返します。
timestamp
)年の初日を返します。
value
)整数または整数の配列 の絶対値を返します。value
が整数配列である場合、結果は整数配列になります。
booleans
)ブール値の配列 のすべての要素が条件を満たす場合に true
を返します。
array
)配列内のすべての値が等しい場合に true
を返します。
ファイルサイズには以下の接尾辞を使用できます:
KB, MB, GB, TB時間の長さには以下の接尾辞を使用できます:
weeks, week, w, days, day, d, hours, hour, hr, h, minutes, minute, min, m, seconds, second, sec, s, milliseconds, millisecond, msec, msSize < 10KB
- いずれかのファイルサイズが 10KB 未満
LeftSize >= 10MB
- 左側のファイルサイズが 10MB 以上
allof(Size < 1MB)
- すべてのファイルが 1MB 未満
abs(LeftSize - RightSize) < 1KB
- サイズ差が小さい
DateStr = "2025-07-20"
- その日に更新されたファイル
Date >= today()
- 今日以降に更新されたファイル
AttrStr contains "R"
- 読み取り専用ファイル
Name matches "file[0-9]\.txt"
- ファイル名に正規表現を適用
Content contains "Test"
- 内容に "Test" を含む
sublines(Content, 0, 1) contains "XML"
- 1行目に "XML" を含む
(Extension = "log" and Size > 10MB) or (Date < today() -
7days)
- 大きなログファイルまたは1週間以上前のファイル
AttrStr not contains "H" and Name like "*.tmp"
-
非表示の一時ファイル
ファイルフィルターは、拡張子 flt
のテキストファイルです。
これらは、フォルダー比較用の複数のフィルタールールを適用することを可能にします。
ファイルマスクと異なり、ファイルフィルターは、含むか除外、どちらかにマッチすることができます。
WinMergeは、たくさんの定義済ファイルフィルターをインストールします。
もし、必要なフィルターが、これらのファイルフィルターで提供されていなかったら、 自分自身で作成することができます。
タスクをもっと簡単にするために、WinMergeは、
FileFilter.tmpl
という名前のテンプレートも提供しています。
このセクションは、比較にファイルフィルターを適用する方法と、ファイルフィルターの文法を説明します。 「フィルターダイアログの使用」では、フィルターの追加、編集、管理方法について説明します。
WinMergeは、次の場所のファイルフィルターを自動的に検出します:
ここには、定義済ファイルフィルターがインストールされています。例えば、 C:\Program
Files\WinMerge\Filters
。 システム上のすべてのユーザーに有効にするために、
ここにファイルフィルターを作成、または、コピーすることができます。
新しいファイルフィルターを作る前に、定義済フィルターに必要なものが含まれているか確認してください。 含まれていない場合、定義済ファイルの中から役立つルールが見つかるかもしれません。
このフォルダーの場所は、WinMerge オプションの、システムページで定義されています。
デフォルトでは、あなたのユーザープロファイルフォルダーのサブフォルダーとして指定されています (Windows
10なら、Documents\WinMerge\Filters
)。
通常、ここに作成、または、コピーされたフィルターは、 あなただけが見ることができます。
新しいファイルフィルターを作成したら、それらをプライベートにするために、 ここにコピーすることができます。
その他のフォルダーにあるファイルフィルターを適用する前に、 それらをインストールしなければなりません。
次のいくつかの方法で、ファイルフィルターを適用することができます:
ファイルまたはフォルダーの選択ダイアログから、フォルダー比較を起動した時:
1(左)と 2(右)のフォルダー選択後、 フィルターフィールドの隣にある ボタンをクリックしてください。
フィルターダイアログで、ファイルフィルターを選択し、 フィルターフィールドへロードするには、ファイルフィルタータブを使用します。
ファイルフィルターが有効になっている(訳注: 何れかのファイルフィルターが選択されている状態)場合、選択されたファイルフィルターは、 フィルターフィールドへ既にロードされています。
比較操作を続けてください。操作を開始した時、 フィルターフィールドのファイルが適用されます。
フォルダー比較操作起動後(違うフィルターを適用した、 または、フィルターを無効にしてしまった時など)にファイルフィルターを変更するには:
→ をクリックしてください。
フィルターダイアログで、新しいフィルターを設定し、
をクリックしてください。フィルターダイアログを閉じた時、新しいフィルターは自動では適用されません: フォルダー比較ウィンドウ中で新しい結果を見るには、 F5を押下してください。
WinMerge コマンドラインから、
フォルダー比較起動時にファイルフィルターを指定するには、 -f
フラグを使用してください。
このセクションは、WinMerge ファイルフィルターの文法と、記述のためのガイドラインの提供について説明します。
コメント記号は、 ##
です。 コメント記号の後にある、行内のすべての文字は無視されます。
WinMergeは、ルール中のほとんどの空白文字を無視します。
しかしながら、通常は、コメントの前に1つか複数の空白文字(スペースかタブ)が置かれるでしょう。 ルール中で、
##
を文字列として使用するには、後ろの空白文字を取り除いてください。
ファイルフィルターで、まずはじめに必要な2行は:
ファイルダイアログに表示されるフィルター名です
適用されるフィルタータイプです。次の値のうち、1つを指定してください:
指定されたルールにマッチしたアイテム以外はすべて含めます。
指定されたルールにマッチしたアイテム以外はすべて除外します。
excludeメソッドを選択した時は、サブフォルダーを指定するd(ディレクトリ)ルールも追加しなければなりません。このように、すべてのサブフォルダーを指定するのは、通常良いアイデアです:
d: \\*$ ## Subfolders
これらの用語で混乱しないでください。ファイルフィルターのincludeルールは、「何を含めるか」を指定するわけではありません。「何を含めない」かを指定します。同様に、excludeルールは、「何を除外する」かを指定するわけではありません。「何を除外しないか」を指定します。
Next, your file should contain one or more filter rules. You can add as many rules as you like. There must be one rule per line, and each rule must be entirely on one line (no line breaks are allowed in a rule). A rule begins with a type designator, followed by either a regular expression or a filter expression. The supported type designators are:
正規表現
Match file names using regular expressions
正規表現
Exclude files matching regex (Available since 2.16.19)
正規表現
Match folder names using regex
正規表現
Exclude folders matching regex (Available since 2.16.19)
式
ファイルに対するフィルター式(例: fe:Size < 1KB)(2.16.49 以降で使用可能)
式
ファイルを除外するためのフィルター式(2.16.49 以降で使用可能)
式
フォルダーに対するフィルター式(2.16.49 以降で使用可能)
式
フォルダーを除外するためのフィルター式(2.16.49 以降で使用可能)
多くの正規表現の特殊文字の中で、次の文字は、ファイルフィルターでは特に重要です:
ルールが正しく動作するために頻繁に必要になります。
ルールが正しく動作するために頻繁に必要になります。例えば:
\.c$ ## 拡張子c
のファイルのみにマッチします。 \.c ##cpp
やcom
のような、拡張子がc
で始まるファイルにマッチします。
通常の文字を、特殊文字にマッチさせるために使います。 例えば、フォルダー名にマッチするために、 フォルダー区切り文字のバックスラッシュの前に、
バックスラッシュを置きます(\\
)。 ファイル名中のドットにマッチするために、
バックスラッシュを指定し、その後にドットを置きます(\.
)。
特殊文字やワイルドカードは、ファイル名とマッチさせるためには、使用されません。 ある型のすべてのファイル名にマッチするためには、単にファイル名を省略します。
ルールは、大文字・小文字を区別しません。例えば、 f: \.bat$
は、
winmerge.bat
と compare.BAT
にマッチします。
例6 ファイルフィルタールールの例
シンプルなファイルフィルタールール:
f: \.cpp$ ##*.cpp
ファイルにマッチ f: \.h$ ##*.h
ファイルにマッチ f: ^My ##My*.*
ファイルにマッチ f: Dlg\. ##*Dlg.*
ファイルにマッチ d: \\test$ ##test
フォルダーにマッチ d: ^\\Build$ ##Build
フォルダーマッチ d: Temp$ ##*Temp
フォルダーにマッチ (例:FirstTemp
) d: Src ##*Src*
フォルダーにマッチ
いくつかのルールは、もっと複雑な正規表現です:
f: ^\.#.*$ ##.#filename.version
ファイル f: Dlg\.c(pp)?$ ##*Dlg.c
と*Dlg.cpp
ファイル f: ^I.*\.h$ ##I*.h
ファイル f: Srv[1-9]\.def$ ##*Srv1.def
から*Srv9.def
ファイル f: ^[h,k,m] ##h*.*
d、k*.*
、m*.*
ファイル
ファイル比較で単一行を無視するために、行フィルターを使用することができます。 例えば、コメント、生成されたコードの決まった型や、 バージョン管理システムのタイムスタンプの様なものを無視するために、 行フィルターを使うかもしれません。各行フィルターは1つのルールです。 ファイル比較のために、たくさんの行フィルターを使用することができます。
フィルターの追加、編集、管理については、 「フィルターダイアログの使用」を参照してください。
次の方法で、行フィルターを適用することができます:
ファイルまたはフォルダーの選択ダイアログから、 ファイル比較を起動する場合
1(左)と 2(右)のファイル選択後、 フィルターフィールドの隣の をクリックしてください。
フィルターダイアログで、使用したい行フィルターを有効化するため、 また、現在どの行フィルターが有効かを確認するには、行フィルタータブを使います。
フィルターフィールドは、 どの行フィルターが有効化されているかを表示しません。
ファイル比較操作を続けてください。 操作を開始した時に、有効化された行フィルターが適用されます。
既に、ファイル比較操作を起動後 (違うフィルターを適用した、または、フィルターを無効にしてしまった時など)は、
→ をクリックしてください。
ファイルフィルタータブを開いてください。
あなたが適用したい行フィルターの行にチェックしてください。 また、適用したくないフィルターは、チェックを外してください。
、 、 ボタンを使用して、 フィルターを追加、編集、削除することもできます。
行フィルター機能を有効にするには、 行フィルターを有効にするにチェックしてください。 行フィルター機能を無効にするには、チェックを外してください。
をクリックして、 ファイルフィルターダイアログを閉じてください。
F5を押下して変更を適用し、 ファイル比較ウィンドウをリフレッシュしてください。
行フィルターは、行フィルタールールが有効化されている場合、 比較ファイル中の単一行の差異毎に評価されるルールです。 単一行の差異にルールがマッチした時、その差異は無視されます。
無視された差異は、ファイル比較ウィンドウ中では、 無視された差異の色(WinMergeオプションの色ページで定義されている) でマークされます。 これは、その他のタイプと無視された差異を区別できるようにします。 しかし、無視された差異は、選択やマージすることができません。
行フィルターマッチは、2つの考えに基づいて記述されるかもしれません:
ルールが、行のある部分にマッチした時、差異全体が無視されます。 つまり、行の一部だけをフィルターすることはできません。 例えば、2つのファイルに、次の単一行の差異があると仮定した場合:
File1:
# Jean Sibelius
File2:
# Janne Sibelius
フィルターなしの場合、行は差異として検出されます。 しかし、行フィルターを
^#
の式とともに適用する場合、その行は同一であると評価されます。
なぜなら、式は、両方のファイルにマッチする最初の文字のみを指定しているからです。
ルールは、すべての行にマッチした場合に、複数行差異に適用されます。例えば、次の2行の差異を考えてみてください:
File1:
# Jean Sibelius # Pekka Himanen
File2:
# Janne Sibelius Pekka Himanen
同じ ^#
ルールは、1行目にマッチしますが、2行目にはマッチしません。 したがって、差異は無視されません。
パターンの正確さを制御するために、 行頭(^
)と行末($
)
記号を使用することは、大抵、良い習慣です。 なぜなら、式が、行のある部分にマッチした場合に、 ルールが適用されるからです。
例7 行フィルターサンプル
^MYTAG$
厳密に、 MYTAG
にマッチする行をフィルターします
^::
::
で始まる行をフィルターします
^/\*.*\*/$
で始まり、/*
*/
で終わる行をフィルターします
^[1-5]00
数字の、100、200、300、400、500 で始まる行をフィルターします
例8 CVS の Id 行にマッチする行フィルタールール
CVS の Id 行は、次の様なものです:
// $Id: Filters.xml 7591 2013-01-20 15:47:42Z christianlist $
そしてこれは、次のルールでフィルターできます:
^// \WId: .*\$
このセクションは、ファイルフィルターと行フィルターの作成・管理機能を提供する、 フィルターダイアログの説明をします。
フィルターダイアログを開くには、次の何れかの方法を使用してください:
ファイルまたはフォルダーの選択ダイアログで、 選択ボタンをクリックしてください。 フォルダー比較用のファイルフィルターを適用したい時は、方法を使用してください。
フィールドの右にある、→ をクリックしてください。 この方法は、ファイルまたはフォルダーの選択ダイアログを開いている時以外に使用可能です。
フィルターダイアログには、それぞれの WinMergeフィルター用のタブがあります:
フォルダー比較用のファイルフィルターを設定するには、このタブを選択してください。
ファイル比較用の行フィルターを設定するには、こちらのタブを使用してください。
Choose this tab to work with substitution filters for file compare operations.
このタブの主要部分は、フォルダー比較用に利用可能なファイルフィルターの一覧です。 このリストは、共有、個人、そして、 「ファイルフィルターの場所」で説明されている、 WinMergeが知り得るインストール済みのファイルフィルターを含んでいます。
ファイルフィルターが、フォルダー比較操作で、それを有効にすること、 また、フィルターが使用され始めてから、 現在のフィルターを止めるために無効にすることを可能にしなければなりません:
まだ、フィルターダイアログを開いていない場合は、開いてください
ファイルフィルターを選択、もしくは、リストから
を選択しくてださい。をクリックして、 フィルターダイアログを閉じてください。
ファイルフィルターを有効にした後でそれらを適用する方法が、いくつかあります。 詳細は、 「ファイルフィルターの適用」を参照してください。
ファイルフィルターリストの管理と フィルターの新規作成には、これらのボタンを使用してください:
フィルターがどのように動作するか素早く確認するには、 リスト中のファイルフィルターを選択し、 「ファイルフィルターのテスト」を参照してください。
をクリックしてください。 詳細は、ファイルフィルターを配置し、フィルターリストへ追加することができます。 ファイルフィルターは、それらをインストールしない限り、 共有フォルダー、デフォルトのプライベートフォルダーのどちらでも検出されません。
共有フォルダーかプライベートフィルターフォルダーのどちらかに、 ファイルテンプレートの新しいコピーを作成します。 「ファイルフィルターの作成」で説明されているように、 テンプレートを編集、ルールの追加を行ってください。
デフォルトエディターでファイルを開くには、リスト中のファイルフィルターを選択し、
をクリックしてください。ファイルを削除しリストから取り除くには、 リスト中のファイルフィルターを選択し、
をクリックしてください。 これで、本当にファイルは削除されました。をクリックして、 フィルターダイアログを閉じた時、変更は保存されます。 行フィルターは、Windowsのレジストリに保存されます。
WinMergeにインストール済のファイルフィルターが、 お望みのフィルターを提供していないなら、あなた自身で作成することができます:
選択ボタンをクリックしてください。
→ をクリックしてください。 または、ファイルまたはフォルダーの選択ダイアログから、 フィールドの右にある、共有/プライベートフィルターダイアログで、 共有フィルター、または、 プライベートフィルター (これらを何に使用するかは、 「ファイルフィルターの場所」を参照してください)を選択し、 OKをクリックしてください。
お使いのシステムの共有、または、プライベートフォルダーが、 「新しいフィルターのファイル名を指定してください」ダイアログに開きます (プライベートフォルダーが存在しない場合は、WinMergeが作成します)。
「新しいフィルターのファイル名を指定してください」ダイアログで、 ファイル名を入力し
をクリックしてください。既存のファイル名を選ばないでください: 既存のファイルを編集するには、 2に戻って、 「新規」の代わりに、「編集」をクリックしてください。
WinMergeは、新しいファイルを、テンプレート: FileFilter.tmpl
を用いて作成し、
デフォルトのテキストエディターでそれを開きます。
テンプレートの編集は、テンプレートの指示に従って、 プレースホルダー名と説明の更新、 「ファイルフィルターの文法」で説明されている、 フィルタールールの追加を行ってください。 テキストエディターでファイルを保存してください。
あなたが作成中のルールを、素早くテストしたい場合は、 フィルターダイアログの「テスト」ボタンをクリックしてみてください。 詳細は、「ファイルフィルターのテスト」を参照してください。
標準のフィルター
フォルダーに、ファイルフィルターを作成したにも関わらず、フィルターダイアログがその新しいファイルフィルターを表示しない場合は、一度、 をクリックしてダイアログを閉じてください。次に、 → をクリックし、再度ダイアログを開いてください。ファイルフィルターリストは、新しいファイルフィルターを含んでいるでしょう。
お使いのシステム上の、別の場所にファイルを保存した場合、 あなたがインストールしない限り、WinMergeは、それを検出することができません。 システム上のどこかにあるファイルフィルターを検出させるには:
フィルターダイアログの
をクリックしてください。「インストールするファイルフィルターの位置」ダイアログで、システム上の flt
ファイルを選択し、
をクリックしてください。
ファイルフィルターリストは、インストールされたファイルフィルターを含んでいるでしょう。
新しいルール作成や既存のルールの理解を補助するため、 サンプルデータに対し素早くファイルフィルターをテストするには、 テストフィルターダイアログを使用してください。 それは、フルで比較操作を走らせるより簡単です。
フィルターダイアログから始めます:
ファイルフィルタータブで、テストしたいファイルフィルターを選択してください。
テストするルールを確認したい場合は、
をクリックしてください。 ファイルが開き、次のステップの間、内容を確認することができます。をクリックしてください。
フィルターのテストダイアログで、テストするルールの型を選択してください:
ファイルフィルター中のファイルルール、 f:をテストするには、 フォルダー名オプションのチェックを外してください。
フォルダールール、 d:をテストするには、 フォルダー名オプションにチェックを入れてください。
テスト用のテキストを入力してください。
テキストは、テストするルールの型に適したものであるべきです。 例えば、フォルダー名オプションをチェックした場合、 あなたは「\temp」の様なフォルダー名を入力したいでしょう。
結果欄は、入力したテキストを、 次のどちらかのステータスと共に表示します:
passed
、または、
failed
。
ファイル比較用の行フィルターの設定と有効化には、このタブを使用してください。 タブは、ルールの一覧を持っています。それぞれのルールは、1つの正規表現を含みます。 ファイル比較用に、リストから複数のルールを組み合わせて適用することができます。
下の 正規表現リストには、 いつでもルールの追加、編集、削除に使うことのできる、編集欄とボタンがあります。
新しいルールを追加するには:
ボタンをクリックしてください。 カーソルが自動的に編集欄へ移動します。
正規表現リストの下にある、編集欄に式を入力してください。
をクリックし、リストへ式を読み込んでください。
既存のルールを編集するには:
行を選択し、
をクリックしてください。編集欄の式を編集してください。
編集が完了したら、
をクリックしてください。ルールを削除するには、ルールを選択(チェック)し、
ボタンをクリックしてください。正規表現リストで、 適用したいフィルターにチェックを入れ、適用したくないフィルターはチェックを外すだけです。
行フィルターを有効にするオプションに チェックを入れるか、外してください。 行フィルターを有効にした場合、 正規表現リストで、現在チェックされているすべてのルールが使用されます。 行フィルターを無効にした場合、たとえそれらがチェックされていても、ルールは使用されません。
をクリックして、フィルターダイアログを閉じ、設定を保存してください。
それらを有効にした後にファイルフィルターを適用する、いくつかの方法があります。 詳細は、 「行フィルターの適用」を参照してください。
正規表現は、非常に複雑になり得ます。幸い、WinMerge のほとんどのファイルフィルターは、このトピックの例からもわかるように、シンプルな範囲の表現です。 WinMergeと共にインストールされるフィルターファイルは、多くの役に立つ例を含んでいます。
最後に、Web上には、正規表現を手助けする、これらのサイトを含むたくさんの情報源があります: