我正在编写一个简单的MS构建脚本来删除文件夹中我的程序未使用的所有文件。所有正在使用的文件都存储在我的.txt文件中,如下所示:
...
/media/50067/d.png
/media/12311/takeover.png
/media/18536/iprima.png
/media/26467/iab_filmstrip_as3.zip
...
是否可以逐行读取我的文本文件填充Exclude属性,以便文本文件中列出的所有文件都将被排除在删除之外?
This stack owerflow theard建议使用ReadLinesFrom文件,但在阅读msdn后我无法掌握它......
我的MS版本看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="DeleteNotUsedFiles">
<ItemGroup>
<Files
Include="Desktop\media\**\*.*"
Exclude="???"
/>
</ItemGroup>
<Delete Files="@(Files)" />
</Target>
</Project>
答案 0 :(得分:1)
您需要做的就是使用ReadLinesFromFile使用文件内容填充项目,即要排除的文件的路径。然后将该ItemGroup用于Exclude属性:
<Target Name="DeleteUnusedFiles">
<ReadLinesFromFile File="exclude.txt">
<!-- This makes an Item 'FilesToExclude' with all lines -->
<Output TaskParameter="Lines" ItemName="FilesToExclude"/>
</ReadLinesFromFile>
<ItemGroup>
<Files Include="Desktop\media\**\*.*"
Exclude="@(FilesToExclude)"/> <!-- Use said Item -->
</ItemGroup>
<Message Text="Deleting @(Files)" />
</Target>