PowerShell でフォルダ列挙

 PowerShell でフォルダ列挙。
 EnumCS 関数のように PowerShell らしくない構文を使う方が速い。
 C:\Windows\System32 (64 bit) フォルダを対象に実行してみると
EnumPS 関数では約 3.1 秒、EnumPS 関数では約 0.3 秒という結果になりました。
(結果はマシンスペックによって異なります)
Function EnumPS( [System.IO.DirectoryInfo] $path )
{
$bitDirectory = [System.IO.FileAttribute]::Directory
Get-ChildItem -path:$path |`
Where-Object { $_.Attributes -band $bitDirectory }
}
Function EnumCS( [System.IO.DirectoryInfo] $path )
{
$enumDirectories = $path.EnumerateDirectories()
$enumerator = $enumDirectories.GetEnumerator()
while( $enumerator.MoveNext() )
{
$enumerator.Current.FullName
}
}
$time1 = Get-Date
EnumPS C:\Windows\System32
$time2 = Get-Date
EnumCS C:\Windows\System32
$time3 = Get-Date
($time2 - $time1).ToString()
($time3 - $time2).ToString()