如何保存已删除文件的日志?

时间:2014-01-23 15:42:48

标签: powershell

我制作了一个删除超过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

2 个答案:

答案 0 :(得分:2)

这是使用Tee-Object(或别名,tee)的好地方。此cmdlet允许您将输出保存到文件或变量,并也将其发送到管道。这是一个快速示例,您应该能够修改并合并到您的脚本中。

$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

答案 1 :(得分: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

这也将记录脚本遇到的任何错误。