如何使用msbuild在单个操作中复制和修改相对路径?

如何使用msbuild在单个操作中复制和修改相对路径?,msbuild,Msbuild,我对msbuild还不太熟悉,对以下问题难以理解。假设我有以下文件结构: foo\bin\folder1_OK\file1.txt foo\bin\folder1_OK\sub\file2.txt foo\bin\folder2_NOK\file3.txt bar\bin\folder3_OK\file4.txt 我希望使用msbuild将名称以“_OK”结尾的所有文件夹以及基础内容复制到我的放置位置。我还想去掉中间的“bin”文件夹。在本例中,我希望输出结构为: foo\folder1_OK

我对msbuild还不太熟悉,对以下问题难以理解。假设我有以下文件结构:

foo\bin\folder1_OK\file1.txt
foo\bin\folder1_OK\sub\file2.txt
foo\bin\folder2_NOK\file3.txt
bar\bin\folder3_OK\file4.txt
我希望使用msbuild将名称以“_OK”结尾的所有文件夹以及基础内容复制到我的放置位置。我还想去掉中间的“bin”文件夹。在本例中,我希望输出结构为:

foo\folder1_OK\file1.txt
foo\folder1_OK\sub\file2.txt
bar\folder3_OK\file4.txt

这能在一次操作中实现吗?如果include属性为“***\u OK*”,则RecursiveDir元数据仍包含bin文件夹。有没有一个聪明的方法可以用来解决这个问题?或者我最好在复制操作后使用连续移动任务?

该过程基于输入路径+文件名生成目标路径+文件名列表

如果使用MSBuild4,则可以使用Property函数使用regex修改目录名

然后可以使用“复制任务”复制这些文件

如果不使用msbuild4,则必须编写自定义任务以生成输出列表