2012-01-10 58 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