翼度科技»论坛 云主机 服务器技术 查看内容

Powershell获取当前文件夹内所有一级子文件夹大小

4

主题

4

帖子

12

积分

新手上路

Rank: 1

积分
12
需求:查看Windows某个文件夹所有一级子文件夹大小,并按照从大到小排序
 
解决方案:使用Powershell脚本
 
脚本内容如下
  1. function filesize ()
  2. {
  3.  
  4. [string]$filepath ="."
  5. $sortedlength = @{ }
  6. $sorted = @{ }
  7. if ($filepath -eq $null)
  8. {
  9. throw "路径不能为空"
  10. }
  11.  
  12. dir -Path $filepath |
  13. ForEach-Object -Process {
  14. if ($_.psiscontainer -eq $true)
  15. {
  16. $length = 0
  17. $name=$_.name
  18. dir -Path $_.fullname -Recurse | ForEach-Object{
  19. [long]$length += $_.Length
  20. }
  21. $sortedlength.Add($name,$length)
  22. }
  23. }
  24.  
  25. $sorted=$sortedlength.GetEnumerator() | Sort-Object value -Descending
  26. foreach ($a in $sorted.GetEnumerator())
  27. {
  28.  
  29. if ($a.Value -ge 1GB)
  30. {
  31. $l = $a.Value/1GB
  32. $a.Key + "文件夹的大小为: {0:n1} GB" -f $l
  33. }
  34.  
  35. elseif ($a.Value -ge 1MB)
  36. {
  37. $l = $a.Value/1MB
  38. $a.Key + "文件夹的大小为: {0:n1} MB" -f $l
  39. }
  40. else
  41. {
  42. $l = $a.Value/1KB
  43. $a.Key + "文件夹的大小为: {0:n1} KB" -f $l
  44. }
  45. }
  46. }
  47. filesize | out-file .\文件大小.txt
复制代码
 
使用方式
1. 到指定目录新建文本文档,将以上代码保存到文档
 
2. 将文本文档保存为.ps1格式,编码选择UTF-8 BOM(如果没有BOM选项,选择UTF-8)

 
3. 右键执行

如遇到报错无法加载文件 XXX.ps1,因为在此系统上禁止运行脚本

需要以管理员身份执行Powershell脚本Set-ExecutionPolicy Bypass,之后再次执行

 
4. 执行完成后会在当前文件夹创建一个文件大小.txt的文本文档,如图所示

 
以上
 
好了,本文就介绍到这里了,感谢您的观看
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

来源:https://www.cnblogs.com/xunjing2/p/17141710.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具