如何获取powershell日志
我有一个PowerShell函数,可以删除在一定时间内未修改的文件夹 我想知道如何将输出/日志获取到如何获取powershell日志,powershell,Powershell,我有一个PowerShell函数,可以删除在一定时间内未修改的文件夹 我想知道如何将输出/日志获取到.txt或.csv文件,该文件将显示删除的文件夹以及删除的时间。我尝试了Start Transcript,但它只会显示错误,不会成功 $daysToKeep = -15 $foldersToKeep = 3 $Location = "C:\Users\Administrator\Desktop\Batch" $folderList = Get-ChildItem -Path $
.txt
或.csv
文件,该文件将显示删除的文件夹以及删除的时间。我尝试了Start Transcript
,但它只会显示错误,不会成功
$daysToKeep = -15
$foldersToKeep = 3
$Location = "C:\Users\Administrator\Desktop\Batch"
$folderList = Get-ChildItem -Path $Location -Recurse -Directory
$folderList | Sort-Object CreationTime -Descending |
Select-Object -Skip $foldersToKeep |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays($DaysToKeep) } |
Remove-Item -Recurse
如果将文件放入循环中,则可以使用
DeleteTime
属性创建自定义对象:
$LogFile = 'C:\temp\FileDeleteLog.csv'
$daysToKeep = -15
$DateBound = (Get-Date).AddDays($daysToKeep)
$foldersToKeep = 3
$Location = "C:\Users\Administrator\Desktop\Batch"
Get-ChildItem -Path $Location -Recurse -Directory |
Sort-Object CreationTime -Descending |
Select-Object -Skip $foldersToKeep |
Where-Object { $_.LastWriteTime -lt $DateBound } |
ForEach-Object{
[PSCustomObject]@{
FolderPath = $_.FullName
LastWriteTime = $_.LastWriteTime
DeleteTime = (Get-Date)
}
Remove-Item $_.FullName -Recurse
} |
Export-Csv -Path $LogFile -NoTypeInformation
我可以想象有很多方法可以做到这一点,这只是其中之一。我们可以使用
selectobject
在现有管道中添加时间戳。但是,如果该过程需要很长时间,则这些时间戳与文件夹实际删除时间之间可能会出现不可接受的间隔。就目前而言,我认为上面的内容会更准确。非常有效。谢谢