2012-01-10 59 views
2

在我的MSBuild可以删除文件的一部分,在某些目录这样耙删除文件任务

<ItemGroup> 
    <FilesToDelete Include="$(DeploymentDir)\**\*" exclude="$(DeploymentDir)\**\*.log"/> 
</ItemGroup> 
<Delete Files="@(FilesToDelete)" /> 

它会删除所有文件,除了* .TXT

有一些rake任务我能类似的事情?

回答

11

的Ruby已经内置类为了使用方便:

Dir['deployment_dir/**/*'].delete_if { |f| f.end_with?('.txt') } 

然而,对于一些建在任务,耙对这个帮手。从API docs改编,你可以选择文件,像这样:

files_to_delete = FileList.new('deployment_dir/**/*') do |fl| 
    fl.exclude('*.txt') 
end 

然后你可以喂到你删除的任务这一点。

更重要的是,你可以使用内置的CLEAN/CLOBBER任务:

# Your rake file: 
require 'rake/clean' 

# [] is alias for .new(), and we can chain .exclude 
CLEAN = FileList['deployment_dir/**/*'].exclude('*.txt') 

然后你就可以在CMD线说:

rake clean 

阅读了tutorial