2012-02-06 1 views
1

Я собрал скрипт для удаления резервных копий файлов, но считаю, что у меня есть атрибут бита архива запутанным.powershell удалить резервную копию файла/архива бит/окна 2008 R2

$path = "D:\logs\" 
$files = Get-ChildItem -Path $path -Recurse 
$attribute = [io.fileattributes]::archive #archive bit 
$date = get-date -format d  # strip time out of date, date needed for Filename 
$date = $date.replace('/','.') # strip out forward slashes and replac with . in date 
$filename = "\ArchiveLog"+$date+".txt" # Filename for log file. 
$location = $path+$filename 
cd D:\logs 

Foreach($file in $files) 
{ 
If((Get-ItemProperty -Path $file.fullname).attributes -band $attribute) 
    { 
    add-content -path "$path" "$file.DirectoryName has been deleted" 
    Remove-Item $file -force 
    } 
} 

однако, когда я проверить это, этот сценарий удаляет совершенно новые файлы, которые только что были созданы, так как файлы, которые вновь созданные имеют «А» атрибут или архивный бит.

Когда я посмотрел на других примеров сценариев, они обычно имеют линии, что обеспечивает архивирование файлов бит устанавливается:

attribute = [io.fileattributes]::archive #archive bit 
If((Get-ItemProperty -Path $file.fullname).attributes -band $attribute) 
{ 
log file name  
Remove file 
} 

Итак ... Мне было интересно, если это что-то новое для Windows 2008 R2 где бит архива «A» устанавливается автоматически при создании, или, возможно, другие скрипты, которые я нашел, ошибочны.

ответ

1

Я думаю, что вы делаете это более сложным, чем это должно быть. Вот пример, когда я возвращаю только файлы TXT с установленным атрибутом ARCHIVE:

PS C:> dir c: \ work * .txt | где {$ _. attributes -match "Архив"} | выберите имя , attributes

Вы можете добавить дополнительную фильтрацию по мере необходимости, если хотите только файлы старше или старше определенной даты.

+0

Jeffery, да, спасибо, это намного чище. Но также ... если атрибут «Архив» установлен, означает ли это, что файл резервную копию или требуется резервное копирование. Я все еще искал это, я думал, что смогу быстро найти эту информацию, но мне сложно найти это на веб-сайте Microsoft. –

+0

@ user1178826 Атрибут состояния архива указывает, был ли резервный файл сохранен или нет. Когда файл создается или модифицируется, бит архива устанавливается, и когда файл был скопирован, бит архива очищается. –

+0

Благодарим вас за это, я просто проверил несколько файлов и смог проверить это (извините, должно было сделать это с самого начала) еще раз спасибо за помощь. –

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