簡體   English   中英

如何在minimatch模式中同時使用NOT和OR進行過濾?

[英]How can I filter with both NOT and OR in minimatch patterns?

我們正在使用TFS 2017和復制文件構建步驟將構建結果的特定文件復制到另一個目錄。 具體來說,我們只希望復制* .dll和* .exe,而不希望復制* .Tests.dll或* .resources.dll。

構建步驟支持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)

但這也不起作用,也沒有進行任何過濾。 我可以將它們組合成一個過濾器嗎? 文檔沒有涵蓋這種情況。

好吧,看來您實際上可以直接將表達式直接放在另一個表達式之后,過濾器必須更加嚴格。 這有效,但是我仍然不知道為什么:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM