2012-01-10 3 views
2

В MSBuild можно удалить часть файлов в определенной директории как этогоRake удаление файлы задачи

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

Это удалит все файлы, кроме * .txt

Есть ли какие грабли задачи я могу подобную вещь?

ответ

11

Рубин построил в классах, чтобы сделать это легко:

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 

Затем вы можете подать это в вашу задачу удаления.

еще лучше, вы можете использовать встроенный в/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.

Смежные вопросы