如何限制 xcopy 排除列表的文件匹配



我遇到了一个问题,即 xcopy 匹配了我没想到它会匹配的文件名...... 某些文件名中的模式与我尝试排除的文件扩展名匹配。 不幸的是,xcopy只是匹配模式...

我的排除文件配置为排除.xml文件,但源目录包含两个项目输出(Acme.XML.dllAcme.XML.Providers.dll),它们被过滤器捕获并排除。

我们使用的复制脚本是我们使用的所有项目的通用脚本,所以我真的不想只对这两个项目进行"一次性"修改。 我还想继续使用涉及排除项文件列表的解决方案。 此脚本是在 30+ 个 VS.NET 项目的构建事件中配置的,因此在需求更改时更新文件比修改所有项目要容易得多......

XCOPY 命令:

 xcopy "C:MNTDevSRCAcmeTestProjectbinRelease*.*" "C:MNTDevAcmeClassLibrariesAnyCPURelease" /I /Y /EXCLUDE:C:MNTDevBuildExclusionList_Release.txt

BuildExclusionList_Release.txt的内容

.tmp
DAL_GENERATED_FLAG.TXT
.xml

经过几个小时的网上挖掘,我能够回答这个问题。 事实证明,只需将反斜杠附加到排除列表中的项目,就会将其匹配限制为文件名的末尾,以及路径名。

我假设斜杠仅适用于文件夹,但 xcopy 也将它们应用于文件名。 使用 .xml ,允许我排除Acme.XML.xml(XML 文档),但不能排除Acme.XML.dll(项目输出)

更新BuildExclusionList_Release.txt

.tmp
DAL_GENERATED_FLAG.TXT
.xml

项目生成输出

Acme.XML -> C:MNTDevSRCAcmeXMLbinReleaseAcme.XML.dll
xcopy "C:MNTDevSRCAcmeXMLbinRelease*.*" "C:MNTDevAcmeClassLibrariesAnyCPURelease" /I /Y /EXCLUDE:C:MNTDevAcmeBuildExclusionList_Release.txt
C:MNTDevSRCAcmeXMLbinReleaseAcme.Common.dll
C:MNTDevSRCAcmeXMLbinReleaseAcme.Logging.dll
C:MNTDevSRCAcmeXMLbinReleaseAcme.XML.dll
C:MNTDevSRCAcmeXMLbinReleaseAcme.Math.dll
4 File(s) copied
========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

相关内容

  • 没有找到相关文章

最新更新