2014-01-23 4 views
1

Я создал сценарий, который удаляет файлы старше 30 дней. Мне нужен журнал с именем и датой и т. Д. Файлов, которые были удалены. Я хочу это каждый раз, когда файл удаляется.Как вести журнал удаленных файлов?

Вот мой код:

$dump_path = "C:\Test" 

$max_days = "-30" 

$curr_date = Get-Date 

$del_date = $curr_date.AddDays($max_days) 

Get-ChildItem $dump_path -Recurse | 
    Where-Object { $_.LastWriteTime -lt $del_date } | 
    Remove-Item 

ответ

1

Вы можете использовать функцию транскриптов, и добавить к вашему -Verbose Remove-Item:

Start-Transcript C:\somedir\transcript.txt -Append 

$dump_path = "C:\Test" 

$max_days = "-30" 

$curr_date = Get-Date 

$del_date = $curr_date.AddDays($max_days) 

Get-ChildItem $dump_path -Recurse | Where-Object { $_.LastWriteTime -lt $del_date } | Remove-Item -Verbose 

Stop-Transcript 

Это также будет записывать любые ошибки сценария столкнулись.

2

Это прекрасное место для использования Tee-Object (или псевдонима, тройника). Этот командлет позволяет сохранить вывод в файл или переменную и отправить его в трубопровод. Вот краткий пример, который вы можете изменить и включить в свой скрипт.

$DateTime = Get-Date -Format "DMM-dd-yyyy_THH-mm-ss" 
Get-ChildItem C:\Test -Recurse | tee -FilePath "C:\Deleted Files-$DateTime.txt" | Remove-Item 

http://technet.microsoft.com/en-us/library/hh849937%28v=wps.620%29.aspx

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