The following example uses the FindUnderPath task to determine if the files contained in the MyFiles item have paths that exist under the path specified by the SearchPath property. After the task completes, the FilesNotFoundInPath item contains the File1.txt file, and the FilesFoundInPath item contains the File2.txt file.
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<MyFiles Include="C:\File1.txt" />
<MyFiles Include="C:\Projects\MyProject\File2.txt" />
</ItemGroup>
<PropertyGroup>
<SearchPath>C:\Projects\MyProject</SearchPath>
</PropertyGroup>
<Target Name="FindFiles">
<FindUnderPath
Files="@(MyFiles)"
Path="$(SearchPath)">
<Output
TaskParameter="InPath"
ItemName="FilesFoundInPath" />
<Output
TaskParameter="OutOfPath"
ItemName="FilesNotFoundInPath" />
</FindUnderPath>
</Target>
</Project>