获取目录中文件和文件夹数量的正确方法是什么?现在我有两种方法可以做到。
首先:
$downloadsFolder=Get-ChildItem -Path "C:\Users\someUser\Downloads\" -Recurse
Write-Output ("Total Files and Folders " + $downloadsFolder.count)
第二:
Write-Output ("Calling from Get-Child-Item " + (Get-ChildItem -Path "C:\Users\someUser\Downloads\" -Recurse).Length)
哪个是对的?他们的优势是一种方式优于另一种方式吗?在其他情况下,他们中的任何人都会给出不准确的计数吗?
答案 0 :(得分:1)
Count
是Length
的别名属性,因此它们之间没有区别。
PS C:\> $f = Get-ChildItem -Path C:\
PS C:\> Get-Member -InputObject $f
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
Count AliasProperty Count = Length
Add Method int IList.Add(System.Object value)
[...]
IsSynchronized Property bool IsSynchronized {get;}
Length Property int Length {get;}
LongLength Property long LongLength {get;}
Rank Property int Rank {get;}
SyncRoot Property System.Object SyncRoot {get;}
如果使用变量或子表达式,它也没有什么区别。
PS C:\> $f = Get-ChildItem -Path C:\
PS C:\> $f.Length
11
PS C:\> (Get-ChildItem -Path C:\).Length
11