天天看点

【PowerShell】计算文件夹大小

Powershell 2.0版本下的脚本:

1

2

3

4

5

6

7

8

9

10

11

12

<code>&lt;#</code>

<code>Script Function: get size of folder</code>

<code>Script Editor: Snail Yu</code>

<code>#&gt;</code>

<code>$directories</code><code>=</code><code>Get-ChildItem</code> <code>c:\windows </code><code>|where</code> <code>{</code><code>$_</code><code>.mode </code><code>-like</code> <code>"d*"</code><code>}</code>

<code>foreach</code> <code>(</code><code>$directory</code> <code>in</code> <code>$directories</code><code>){</code>

<code>    </code><code>$files</code><code>=(</code><code>Get-ChildItem</code> <code>$directory</code><code>.fullname -Recurse -ErrorAction SilentlyContinue</code><code>|where</code> <code>{</code><code>$_</code><code>.mode </code><code>-like</code> <code>"-a*"</code><code>})</code>

<code>    </code><code>foreach</code> <code>(</code><code>$file</code> <code>in</code> <code>$files</code><code>){</code>

<code>        </code><code>$size</code><code>=</code><code>$size</code><code>+</code><code>$file</code><code>.length</code>

<code>    </code><code>}</code>

<code>     </code><code>write-host</code> <code>"the size of $directory is : $size"</code>

<code>}</code>

PowerShell 4.0版本下的脚本:

<code>$directories</code><code>=</code><code>Get-ChildItem</code> <code>d:\ -Directory</code>

<code>foreach</code> <code>(</code><code>$directory</code> <code>in</code> <code>$directories</code><code>){       </code>

<code>$files</code><code>=</code><code>Get-ChildItem</code> <code>$directory</code><code>.FullName -Recurse –File -ErrorAction SilentlyContinue   </code>

<code>foreach</code> <code>(</code><code>$file</code> <code>in</code> <code>$files</code><code>){            </code>

<code>   </code><code>$size</code><code>=</code><code>$size</code><code>+</code><code>$file</code><code>.Length       </code>

<code>   </code><code>}        </code>

<code>   </code><code>write-host</code> <code>"the size of $directory is : $size"</code>     

参数说明:

(1)powershell 2.0中的get-childitem 没有file和directory的参数,只有通过管道来筛选;

(2)-erratction为错误处理机制,详见博客:http://281816327.blog.51cto.com/907015/1417587

(3)powershell得到的是文件夹名不包括绝对路径,需要用fullname属性显示指定;

本文转自 bannerpei 51CTO博客,原文链接:http://blog.51cto.com/281816327/1549025,如需转载请自行联系原作者

继续阅读