【发布时间】:2021-12-23 09:53:30
【问题描述】:
我在几台服务器上有一堆文件夹。我正在尝试清理它们以释放磁盘空间。我正在尝试查找 7 年或更长时间未触及的目录。由于文件夹结构以某种方式设置,我想按名称、大小和上次写入时间显示文件夹。到目前为止,我有这个代码。
Get-ChildItem -Path $HDriveServer1 -Depth 1 -Directory -Force | Where-Object { $_.LastWriteTime -le (Get-Date).AddYears(-7)} | Select-Object Name,@{Name='Size';Exp={(Get-ChildItem -Recurse -File -Force | Measure-Object -Property Length -Sum).Sum / 1MB}},LastWriteTime | Out-File $report
名称和上次写入时间似乎输出正确,但大小都显示相同的值。这是我看到的输出,无法弄清楚为什么大小相同。
有什么想法吗?谢谢!
代码输出
【问题讨论】:
-
Get-ChildItem在您的计算属性内部永远不会给出明确的路径。因此,每次执行时都会获取当前目录(调用脚本的目录)。所以它总是相同的路径。试试Get-ChildItem $_ -Recurse -File -Force -
这是有道理的,而且是一个令人瞩目的时刻......不幸的是,这将“大小”列中的值更改为 0。
标签: powershell file directory