2
$source = @{}
gci | %{$source.Add($_.FullName,$_)}
$source.getEnumerator() | %{($_.value).PsIsContainer}

没有把我带到任何地方;但

gci | % {$_.PsIsContainer}

我是否已经使用

$source.getEnumerator() | %{
if ((($_.Value).Attributes).toString() -eq "Directory")
   {
   ...
   }

}

这似乎有点笨重

为什么 PsIsContainer 不适用于 HashTable 值?

4

1 回答 1

3

但是,当我使用更直接的方法将项目添加到表中时,它确实对我有用:

PS> $source =@{}
PS> gci|%{$source[$_.FullName] = $_}
PS> $source.GetEnumerator() | %{$_.Value.PSIsContainer}
True
False
False
False
False
False
False
True
False
...

这似乎是使用Add将事物放入哈希表的方法的神器。

于 2012-08-22T09:00:57.240 回答