【发布时间】:2020-05-16 07:21:13
【问题描述】:
我想列出具有全名、大小、LastWriteTime 的目录并递归到第三级。
Get-ChildItem -Depth 3 |
Where-Object {
$_.PSIsContainer
} |
ForEach-Object {
$_.FullName + ";" + "{0:N2}" -f ((Get-ChildItem $_ -Recurse |
Measure-Object Length -Sum -ErrorAction SilentlyContinue).Sum / 1MB) + " MB"+";"+ $_.LastWriteTime
}
但大小仅针对第一级目录进行测量。
输出是:
C:\folder1\folder2 ; 487,69 MB ; 30.01.2020 17:58:45
C:\folder1\folder2\folder3 ; 0,00 MB ; 30.01.2020 17:59:34
C:\folder1\folder2\folder3\folder4 ; 0,00 MB ; 30.01.2020 17:59:37
但是应该是这样的,因为我在每个文件夹中都放了同一个文件:
C:\folder1\folder2 ; 1463,07 MB ; 30.01.2020 17:58:45
C:\folder1\folder2\folder3 ; 975,38 MB ; 30.01.2020 17:59:34
C:\folder1\folder2\folder3\folder4 ; 487,69 MB ; 30.01.2020 17:59:37
【问题讨论】:
-
因此,您想要获取
Get-ChildItem的三个子树中的所有目录,然后想要遍历其中的所有文件以获取长度,然后报告 3 个深层目录中的每一个及其尺寸? -
是的,没错。它适用于 C:\directory1,但是当涉及到第二和第三级(C:\directory1\directory2 和 C:\directory1\directory2\directory3)时,Size 的值将始终为 0.00 MB。跨度>
-
@MarcJefferson5 - 您的 desired 结果显示所有子目录的大小相同。你真的拥有
folder4中的所有文件吗? -
你是对的。我更正了。
-
@MarcJefferson5 - 太好了!谢谢... [咧嘴笑]
标签: powershell directory size get-childitem