我在winmerge中创建了一个过滤器,以便它只比较特定的文件类型。筛选器如下所示:
def: exclude
f: .xml$
f: .csv$
f: .rteparams$
f: .rteswb$
f: .rteudp$
f: .rte$
f: .cfg$
这工作正常,但比较不会在子文件夹中检查,即使我选择了"包括子文件夹"。
如果我在过滤器中添加一行:
d: \CONFIGURATION$
然后它也将检查此文件夹。但是我有太多文件夹,所以我无法全部添加它们。如果我添加这一行:
d: \*$
然后它将遍历所有子文件夹,但将检查所有文件类型,而不仅仅是我指定的文件类型。
有人可以帮忙吗?将不胜感激。
令人沮丧的是,我可以使用WinMerge执行此操作的唯一方法是使用包含(def:include(过滤器并使用PowerShell构建一个大文件扩展名列表。 请记住,"包含"的 WinMerge 筛选器表示"包含(松散(筛选器允许通过所有不符合规则的项目"。 嘶哑但有效。
PowerShell:
gci C:PathToYourFolder* -exclude *.bat, *.pl -recurse | select Extension | % { $ext = $_.Extension; if (${ext}){ echo "f: ${ext}$" } } | sort -uniq
您可以在希望 WinMerge 比较的所有扩展的"-exclude "参数中添加参数值。
缺点是当您扫描新文件夹或同事添加扩展名为".backup5"的新文件时,您必须畏缩并忍受看着垃圾,或者重建或编辑过滤器。