这个脚本运行良好,但我不知道如何添加类似仅获取 2022 年最后编辑的文件之类的内容,例如 {where LastWriteTime -eq 2022}
$arr = @()
gci 'C:\Users\myusername\Documents\' -recurse | ? {$_.PSIsContainer -eq $False} | % {
$obj = New-Object PSObject
$obj | Add-Member NoteProperty Directory $_.DirectoryName
$obj | Add-Member NoteProperty Name $_.Name
$obj | Add-Member NoteProperty Length $_.Length
$obj | Add-Member NoteProperty CreationTime $_.CreationTime
$obj | Add-Member NoteProperty Access $_.LastAccessTime
$obj | Add-Member NoteProperty Owner ((Get-ACL $_.FullName).Owner)
$arr += $obj
}
$arr | Export-CSV -notypeinformation "C:\Users\myusername\Downloads\report.csv"
最佳答案
LastWriteTime
是 DateTime
instance ,因此您只需检查 Year
property并与之比较。对于您的代码,有 3 条建议:
- 使用
-File
或-Directory
当需要按其中任何一个进行过滤时。 - 使用
PSCustomObject
实例化您的对象。它更容易、更快。 - Avoid adding elements
+=
to a fixed collection@()
。在这种情况下,您可以充分利用管道,逐个获取文件,处理每个对象并将它们输出到文件。
Get-ChildItem 'C:\Users\myusername\Documents\' -Recurse -File | ForEach-Object {
if($_.LastWriteTime.Year -eq 2022) {
[pscustomobject]@{
Directory = $_.DirectoryName
Name = $_.Name
Length = $_.Length
CreationTime = $_.CreationTime
Access = $_.LastAccessTime
Owner = (Get-ACL $_.FullName).Owner
}
}
} | Export-CSV "C:\Users\myusername\Downloads\report.csv" -NoTypeInformation
关于powershell - 如何将特定年份(例如 2022 年)的文件夹统计信息保存到 csv 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74076088/