Powershell 获取文件计数的正确方法
Powershell Proper way for Getting File Count
获取目录中文件和文件夹数量的正确方法是什么?现在我有两种方法。
第一个:
$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)
哪个是正确的?他们做一种方式比另一种方式有优势吗?他们中的任何人在另一种情况下会给出不准确的计数吗?
Count
是Length
的别名属性,所以两者没有区别。
PS C:\> <b>$f = Get-ChildItem -Path C:\</b>
PS C:\> <b>Get-Member -InputObject $f</b>
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
<i>Count AliasProperty Count = Length</i>
Add Method int IList.Add(System.Object value)
<i>[...]</i>
IsSynchronized Property bool IsSynchronized {get;}
<i>Length Property int Length {get;}</i>
LongLength Property long LongLength {get;}
Rank Property int Rank {get;}
SyncRoot Property System.Object SyncRoot {get;}
使用变量或子表达式也没有区别。
PS C:\> <b>$f = Get-ChildItem -Path C:\</b>
PS C:\> <b>$f.Length</b>
11
PS C:\> <b>(Get-ChildItem -Path C:\).Length</b>
11
获取目录中文件和文件夹数量的正确方法是什么?现在我有两种方法。
第一个:
$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)
哪个是正确的?他们做一种方式比另一种方式有优势吗?他们中的任何人在另一种情况下会给出不准确的计数吗?
Count
是Length
的别名属性,所以两者没有区别。
PS C:\> <b>$f = Get-ChildItem -Path C:\</b>
PS C:\> <b>Get-Member -InputObject $f</b>
TypeName: System.Object[]
Name MemberType Definition
---- ---------- ----------
<i>Count AliasProperty Count = Length</i>
Add Method int IList.Add(System.Object value)
<i>[...]</i>
IsSynchronized Property bool IsSynchronized {get;}
<i>Length Property int Length {get;}</i>
LongLength Property long LongLength {get;}
Rank Property int Rank {get;}
SyncRoot Property System.Object SyncRoot {get;}
使用变量或子表达式也没有区别。
PS C:\> <b>$f = Get-ChildItem -Path C:\</b>
PS C:\> <b>$f.Length</b>
11
PS C:\> <b>(Get-ChildItem -Path C:\).Length</b>
11