2017-06-14 114 views
0

我們正在使用TFS 2017和複製文件構建步驟將構建結果的特定文件複製到另一個目錄。具體而言,我們只需要複製* .dll和* .exe,但不需要* .Tests.dll或* .resources.dll。如何在minimatch模式下使用NOT和OR進行過濾?

構建步驟支持minimatch模式來過濾文件,但我無法讓它應用兩個過濾器。

的模式如下:

bin\**\?(*.exe|*.dll) 
bin\**\!(*.Tests.dll|*.resources.dll) 

例如,該文件夾內容是:

bin\Yes.dll 
bin\Yes.exe 
bin\No.Tests.dll 
bin\No\Some.resources.dll 

看來,圖案依次應用,所以他們都工作獨立,但畢竟不是另一個。

我想是這樣

bin\**\?(*.exe|*.dll)!(*.Tests.dll|*.resources.dll) 

但是,這並沒有工作,要麼和過濾什麼。我可以以某種方式將這些組合成單個過濾器嗎? docs不包括這種情況。

回答

0

好吧,似乎你實際上可以直接將表達式放在另一個表達式上,過濾器只需要更嚴格。這工作,但我仍然不知道爲什麼:

bin\**\!(*.Tests.dll|*.resources.dll|*.pdb|*.xml|*.manifest)?(*.exe|*.dll) 
相關問題