递归比较两个目录,除了 \bin\ 和 \obj\

sab*_*669 4 winmerge

我正在尝试使用 WinMerge 来比较两个目录:

C:\用户...\桌面\比较\35_A

C:\用户...\桌面\比较\35_HS

## This is a directory/file filter for WinMerge 
## This filter lets through only files ASP.NET developers care about 
name: ASP.NET Devel 
desc: Lets through only files ASP.NET developer cares about

## This is an exclusive filter 
## (it lets through only matching files) 
def: exclude 

## Filters for filenames begin with f: 
## Filters for directories begin with d: 
## (Inline comments begin with " ##" and extend to the end of the line) 

f: \.xml$ 
f: \.xlst$
f: \.xsl$
f: \.xslt$
f: \.dtd$ 
f: \.html$ 
f: \.htm$ 
f: \.css$ 
f: \.gif$ 
f: \.bmp$ 
f: \.jpg$ 
f: \.png$ 
f: \.js$ 
f: \.dll$ 
f: \.aspx$ 
f: \.asmx$ 
f: \.ascx$ 
f: \.vb$ 
f: \.resx$ 
f: \.cs$ 
f: \.js$ 
f: \.vbproj$ 
f: \.csproj$ 
f: \.sln$ 
f: \.webinfo$ 
f: \.config$ 

d: \\*$ ## Subdirectories 

def: exclude
d: \\bin
d: \\obj
Run Code Online (Sandbox Code Playgroud)

最后 3 行不是过滤器的一部分,我添加了它们,因为我试图忽略所有 \bin\ 和 \obj\ 目录中的所有内容。我已经尝试了def: includedef: exclude,都没有提供准确的结果。

我查看了 WinMerge 中有关文件过滤器的帮助文档,但我不明白。

Pat*_*our 6

包含排除是指比较后文件和文件夹列表中显示的内容。过滤器包括排除该列表中的内容。

如果您使用排除过滤器,它会从文件列表中排除过滤器中列出的所有内容。

如果您使用包含过滤器,它会在文件列表中包含过滤器中列出的所有内容。

在您的情况下,您使用的是排除,因此您只会看到您专门在过滤器中列出的文件和文件夹。要阻止binobj文件夹,您需要知道您可能想要查看的所有其他文件夹的名称,以便它们可以列在您的过滤器中。

我发现,对于代码,使用包含过滤器更容易。这样,我可以屏蔽我不关心的文件夹和文件。

将第一个更改def:include,并删除第二个def。我想你只能拥有一个def。你的d:规则将是

d: \\bin$
d: \\obj$
Run Code Online (Sandbox Code Playgroud)