Powershell获取目录中的文件和文件夹数量

时间:2014-06-23 19:59:03

标签: batch-file powershell scripting cmd

我打算写一个PowerShell脚本,它可以获得有关它所在目录的各种统计信息。

如果我这样做

get-childitem

我明白了

d----        06/23/2014   2:49 PM            asdf;
-a---        06/23/2014   2:49 PM         23 New Text Document - Copy (2).txt
-a---        06/23/2014   2:49 PM         23 New Text Document - Copy (3).txt
-a---        06/23/2014   2:49 PM         23 New Text Document - Copy (4).txt
-a---        06/23/2014   2:49 PM         23 New Text Document - Copy (5).txt
-a---        06/23/2014   2:49 PM         23 New Text Document - Copy.txt
-a---        06/23/2014   2:49 PM         23 New Text Document.txt

如果我这样做

(get-childitem).count

我得到了

7

我希望能够计算目录中的文件数以及文件夹数。任何建议,将不胜感激。感谢。

2 个答案:

答案 0 :(得分:5)

嗯,你想要两个不同的东西,所以你可能需要运行两个不同的命令。计数文件夹:

(GCI|?{$_.PSIsContainer}).Count

然后计算文件:

(GCI|?{!$_.PSIsContainer}).Count

答案 1 :(得分:4)

您可以使用以下命令执行此操作:

$headers = @{ $true='Folder'; $false='File' }
Get-ChildItem |
  Group-Object PSIsContainer |
  Select-Object @{ Name="Type"; Expression={ $headers[$_.Name -eq $true] } }, Count

或全部在一行:

gci | group psiscontainer | select @{n="Type";e={@{$true='Folder';$false='File'}[$_.Name -eq $true]}}, Count