Batch file 生成后事件xcopy-排除某些文件集

Batch file 生成后事件xcopy-排除某些文件集,batch-file,xcopy,post-build-event,build-events,Batch File,Xcopy,Post Build Event,Build Events,我想在项目成功编译后将一些文件复制到特定文件夹。我已经编写了一个构建后事件,如下所述: xcopy "$(ProjectDir)bin" "$(TargetDir)..\..\Support Files\DBUpgradeUtility\" /Y xcopy "$(ProjectDir)bin" "$(TargetDir)..\..\Support Files\DBUpgradeUtility\" /Y /exclude:$(TargetDir)..\..\Support Files\DBUp

我想在项目成功编译后将一些文件复制到特定文件夹。我已经编写了一个构建后事件,如下所述:

xcopy "$(ProjectDir)bin" "$(TargetDir)..\..\Support Files\DBUpgradeUtility\" /Y
xcopy "$(ProjectDir)bin" "$(TargetDir)..\..\Support Files\DBUpgradeUtility\" /Y /exclude:$(TargetDir)..\..\Support Files\DBUpgradeUtility\*.vshost.exe
注意:我的项目的输出路径已设置为bin文件夹,用于调试和释放这两种模式

上述生成事件工作正常,bin文件夹下的所有文件都已复制到目标文件夹。但是除了所需的文件之外,“vshost.exe”文件也被复制了,我不想要这个文件。因此,我使用了xcopy build event的exclude参数,如下所述:

xcopy "$(ProjectDir)bin" "$(TargetDir)..\..\Support Files\DBUpgradeUtility\" /Y
xcopy "$(ProjectDir)bin" "$(TargetDir)..\..\Support Files\DBUpgradeUtility\" /Y /exclude:$(TargetDir)..\..\Support Files\DBUpgradeUtility\*.vshost.exe
对于上述生成事件,编译失败,错误为:

命令“xcopy”C:\TFSWorkspace\FASTER.Web- v6.3.Sprint.06\Source\Installer\Application\DBUpgradeUtility\bin“ “C:\TFSWorkspace\FASTER.Web- v6.3.Sprint.06\Source\Installer\Application\DBUpgradeUtility\bin….\Support Files\DBUpgradeUtility\“/Y/exclude:“C:\TFSWorkspace\FASTER.Web- v6.3.Sprint.06\Source\Installer\Application\DBUpgradeUtility\bin….\Support 文件\DBUpgradeUtility*。vshost.exe“已退出,代码为4

我还搜索了exclude参数,然后编写了上面提到的构建事件。我找不到我在这里缺少什么或我做错了什么

请帮我做这个


谢谢。

命令的
/exclude
选项的工作方式不同-它允许您指定包含排除筛选器的文件:

指定文件列表。必须至少指定一个文件。每个 文件将包含搜索字符串,每个字符串位于单独的一行 在文件中

当任何字符串与绝对值的任何部分匹配时 要复制的文件的路径,该文件将被删除 已复制。例如,指定字符串,
\obj\
.obj
将排除 目录下的所有文件
obj
或带有
的所有文件.obj
分机

因此,您可以在项目中创建一个新文件(例如
$(ProjectDir)excludes.txt
)并添加此行:

vshost.exe
然后将xcopy命令中的选项更改为:

/exclude:"$(ProjectDir)excludes.txt"
这将排除绝对路径中包含
vshost.exe
的所有文件。如果必须排除其他文件,只需在文件中添加新行即可