如何使用Powershell查找文件夹的大小?


23

我希望能够看到一个文件夹有多大(所有内容,包括子文件夹及其内容)。我找不到执行此操作的powershell命令,但是我不想每次想知道大小时都必须打开Windows资源管理器。有没有简单的方法可以在Powershell中完成此操作?

Answers:


29

可以肯定的是,我是从今天的Powershell技巧中得到的。记不清了,但是我已经使用了很长时间了,它非常有用。

"{0:N2}" -f ((Get-ChildItem -path C:\InsertPathHere -recurse | Measure-Object -property length -sum ).sum /1MB) + " MB"

编辑:为了使它更易于使用(因此您不必每次都记住并键入整个内容),可以将其作为功能添加到您的个人资料中,如下所示:

function Get-Size
{
 param([string]$pth)
 "{0:n2}" -f ((gci -path $pth -recurse | measure-object -property length -sum).sum /1mb) + " mb"
}

然后像使用任何命令一样使用它:

Get-size C:\users\administrator

1
我很好奇,如何将其添加到PowerShell配置文件中?您是说网点采购吗?(旁注:可以通过在开头添加4个空格来格式化代码)
nixda 2013年

2
您可以 。如果您进行了更改并且不想重新启动PS会话,则可以从您的个人资料中获取资源,但是每次启动Powershell时它都会自动加载,因此通常不会这样做。要首次创建个人资料,请执行以下操作:ni $ profile -type f -fo然后,您可以打开和编辑个人资料。要找到它的位置,只需在外壳中键入$ profile,就会显示路径。然后,您添加的任何功能(例如上面的功能)都可以像内置的一样使用。感谢代码格式化技巧
Darian Everett

1
+1 Whoa不知道该把戏。令人着迷:)
nixda

1
怎么{0:N2}办?
soandos

1
格式化。零是占位符,N2表示它是一个具有两位小数的数字。
达里安·埃弗里特

9

此处的Microsoft Technet网站上

输入:

Get-ChildItem C:\Scripts -recurse | Measure-Object -property length -sum

输出:

Count    : 58
Average  :
Sum      : 1244611
Maximum  :
Minimum  :
Property : length

1
但是,这通常可能相差很远,因为您需要递归检查文件夹是否包含子文件夹。另外,位的测量是什么?
奥斯丁T French

更正它的内容-还忘了包括我没有进行过编辑的递归开关-还请注意,我主要发布该文章是为了提供有关执行通过Google搜索这些搜索的技术网文章(powershell文件夹大小),以便OP可以全面了解使用的命令不仅是答案
2013年

感谢您的更新,我认为现在更适合问答形式。
奥斯丁T法国片
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.