我制作了一个删除超过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
答案 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
这也将记录脚本遇到的任何错误。