任务:显示 C:\temp 中的主文件夹(按顶部/大小排序),c:\temp 文件夹内部有很多子文件夹,路径也很长。
喜欢
c:\temp
c:\temp\folder1
c:\temp\folder1\sub_folder
c:\temp\folder2
c:\temp\folder2\sub_folder_more_folder_long_folders_files_names_as_well
我想显示这样的文件夹列表
Name Type Size
folder1 Directory 10
folder2 Directory 12
我正在使用以下 powershell 脚本来获取文件夹名称及其大小,按大小排序,最后仅显示前 20 个文件夹。
ls c:\temp | select Name,
@{
Name="Type";Expression={
if($_.psIsContainer)
{
"Directory"
}
else
{
"File"
}
}
},
@{
Name="Size(GB)";
Expression=
{
[Math]::Round($(ls $_.FullName -recurse| measure Length -sum).Sum/1GB, 3)
}
} | sort -property "Size(GB)" -desc | Select -First 20
这给了我结果,
USER1 Directory 11.166
USER2 Directory 2.917
USER3 Directory 0.042
The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.The specified path, file name, or both are too long.
如我所见,它还会出现长路径名错误,我该如何解决这个问题?