MSBuild найти все каталоги, которые содержат файл с именем xxxx - PullRequest
3 голосов
/ 04 марта 2010

Учитывая структуру папок:

parentFolder
  - ChildFolder1
    - somefiletolookfor.txt
    - (other files and folder)
  - ChildFolder2
    - (other files and folder)
  - ChildFolder3
    - (other files and folder)
  - ChildFolder4
    - somefiletolookfor.txt
    - (other files and folder)
  - ChildFolder5
    - (other files and folder)

Я хотел бы получить пути к папкам для ChildFolder1 и ChildFolder4. И для каждого из этих путей к папкам мне нужно выполнить задачу копирования.

1 Ответ

14 голосов
/ 04 марта 2010

Вот тот, который будет работать:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Demo" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <ItemGroup>
    <AllFiles Include="ChildFolder*\**"/>
    <SpecificFiles Include="ChildFolder*\somefiletolookfor.txt" />
  </ItemGroup>

  <Target Name="Demo">

    <Message Text="AllFiles: @(AllFiles)"/>
    <Message Text="====================="/>
    <Message Text="SpecificFiles: @(SpecificFiles)"/>
    <Message Text="====================="/>
    <Message Text="Specific Dirs: @(SpecificFiles->'%(RootDir)%(Directory)')"/>
    <Message Text="====================="/>
  </Target>

</Project>

Вот результат для образцов файлов, которые я сделал:

  AllFiles: ChildFolder1\other.txt;ChildFolder1\somefiletolookfor.txt;ChildFolder2\other.txt;ChildFolder3\other.txt;ChildFolder4\other.txt;C
  hildFolder4\somefiletolookfor.txt;ChildFolder5\other.txt
  =====================
  SpecificFiles: ChildFolder1\somefiletolookfor.txt;ChildFolder4\somefiletolookfor.txt
  =====================
  Specific Dirs: C:\Data\Ibrahim\Development\MSBuild\FindFolders\ChildFolder1\;C:\Data\Ibrahim\Development\MSBuild\FindFolders\ChildFolder4\
  =====================
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...