【问题标题】:How do I limit the file matching of the xcopy exclusion list如何限制 xcopy 排除列表的文件匹配
【发布时间】:2014-03-31 11:15:58
【问题描述】:

我遇到了一个问题,其中 xcopy 匹配了我不希望它匹配的文件名...某些文件名中的模式与我试图排除的文件扩展名匹配。不幸的是 xcopy 只是匹配模式......

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

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

XCOPY 命令:

 xcopy "C:\MNT\Dev\SRC\Acme\TestProject\bin\Release\*.*" "C:\MNT\Dev\Acme\ClassLibraries\AnyCPU\Release" /I /Y /EXCLUDE:C:\MNT\Dev\BuildExclusionList_Release.txt

BuildExclusionList_Release.txt 的内容

.tmp
DAL_GENERATED_FLAG.TXT
.xml

【问题讨论】:

    标签: file xcopy


    【解决方案1】:

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

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

    更新了 BuildExclusionList_Release.txt

    .tmp\
    DAL_GENERATED_FLAG.TXT
    .xml\
    

    项目构建输出

    Acme.XML -> C:\MNT\Dev\SRC\Acme\XML\bin\Release\Acme.XML.dll
    xcopy "C:\MNT\Dev\SRC\Acme\XML\bin\Release\*.*" "C:\MNT\Dev\Acme\ClassLibraries\AnyCPU\Release" /I /Y /EXCLUDE:C:\MNT\Dev\Acme\BuildExclusionList_Release.txt
    C:\MNT\Dev\SRC\Acme\XML\bin\Release\Acme.Common.dll
    C:\MNT\Dev\SRC\Acme\XML\bin\Release\Acme.Logging.dll
    C:\MNT\Dev\SRC\Acme\XML\bin\Release\Acme.XML.dll
    C:\MNT\Dev\SRC\Acme\XML\bin\Release\Acme.Math.dll
    4 File(s) copied
    ========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-12-28
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多