设为首页 收藏本站
查看: 4535|回复: 0

Powershell获取文件夹大小和排序【层级关系】【大小】【名称】

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-27 08:58:55 | 显示全部楼层 |阅读模式
#*****************************************************************************************
#使用示例:

#示例:GetFoldersize.ps1 -FolderPath "D:\Exchange Server" -sort Layer -Class 3 -Size 0.5
#获取"D:\Exchange Server"目录下的3层以内的大于0.5GB的子文件夹,并按照子文件夹所在的层级进行
#排序;

#示例:GetFoldersize.ps1 -FolderPath "D:\Exchange Server" -sort SizeGB
#获取"D:\Exchange Server"目录下的所有子文件夹并按照大小进行排序

#使用管理员运行脚本可解决GUI操作界面的文件夹权限问题。
#*****************************************************************************************
#参数说明:

#-FolderPath 需要提取信息的文件夹,必需参数;
#-Sort 显示结果的排序属性,支持Layer,FullName,Size,非必需参数,默认情况下按照子文件夹所属
#层级进行排序;
#-Class 显示子文件夹的最大层级数,非必需参数,默认情况下显示的最大层级为100;
#-Size 筛选超过一定大小的文件夹,以GB为单位,非必需参数,默认情况下显示所有文件夹;
#*****************************************************************************************
#帮助信息:
#Edit By Simy_88 @2015/07/26
#QQ:2022215673
#Mail:simy_88@163.com

#*****************************************************************************************
wKioL1W0hRfifgXaAAM_MZFMASk479.jpg
#*****************************************************************************************
#使用示例:

#示例:GetFoldersize.ps1 -FolderPath "D:\Exchange Server" -sort Layer -Class 3 -SizeGB 0.5
#获取"D:\Exchange Server"目录下的3层以内的大于0.5GB的子文件夹,并按照子文件夹所在的层级进行
#排序;

#示例:GetFoldersize.ps1 -FolderPath "D:\Exchange Server" -sort SizeGB
#获取"D:\Exchange Server"目录下的所有子文件夹并按照大小进行排序

#*****************************************************************************************
#参数说明:

#-FolderPath 需要提取信息的文件夹,必需参数;
#-Sort 显示结果的排序属性,支持Layer,FullName,Size,非必需参数,默认情况下按照子文件夹所属
#层级进行排序;
#-Class 显示子文件夹的最大层级数,非必需参数,默认情况下显示的最大层级为100;
#-SizeGB 筛选超过一定大小的文件夹,非必需参数,默认情况下显示所有文件夹;
#*****************************************************************************************
#帮助信息:
#Edit By Simy_88 @2015/07/26
#QQ:2022215673
#Mail:simy_88@163.com

#*****************************************************************************************

#参数定义
Param (
[Parameter(Mandatory = $true)]
[ValidateNotNullOrEmpty()]
[string]$FolderPath,

[ValidatePattern("Layer|FullName|Size")]
[string]$sort = "Layer",

[int]$Class = 100,

[double]$Size = 0
)

$InitialLayer = $FolderPath.Split("\").count

$ChildFolder = Get-ChildItem -Path $FolderPath -recurse | where {$_.PSIsContainer -eq $true}

$output = @()

Foreach ($Folder in $ChildFolder)

{

$TempObj = New-Object psobject

$ChildFolderPath = $Folder.fullname

$Layer = $ChildFolderPath.Split("\").count - $InitialLayer

$ChildFiles = Get-ChildItem -Path $ChildFolderPath -Recurse | where {$_.PSIsContainer -eq $false}

If ($ChildFiles -ne $null)

{

$SizeByte = ($ChildFiles | Measure-Object -Property length -Sum).sum

$SizeGB = "{0:N2}" -f ($SizeByte/1GB)

} else

{

$SizeGB = 0

}

$TempObj | Add-member -Type NoteProperty -name "Layer" -value $Layer

$TempObj | Add-member -Type NoteProperty -name "Name" -value $Folder.name

$TempObj | Add-member -Type NoteProperty -name "FullName" -value $ChildFolderPath

$TempObj | Add-member -Type NoteProperty -name "Size" -value $SizeGB

$Output += $TempObj

}

$output | where {($_.size -gt $size) -and ($_.layer -le $class)} | sort-object $sort





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-90996-1-1.html 上篇帖子: Shell-循环语句 下篇帖子: shell中使用while循环ssh时只循环第一行的问题解决 文件夹
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表