我有两个在powershell中一起工作的函数:
Function Get-PropertyValue($fileName, $property)
{
$path = (Get-Item $fileName).FullName
$shell = New-Object -COMObject Shell.Application
$folder = Split-Path $path
$file = Split-Path $path -Leaf
$shellfolder = $shell.Namespace($folder)
$shellfile = $shellfolder.ParseName($file)
$shellfolder.GetDetailsOf($shellfile,$property)
}
Function Create-List($files, $property)
{
$list = @{}
foreach ($file in $files)
{
$list.Add($file.toString(),(Get-PropertyValue $file $property).toString())
}
$list.GetEnumerator() | Sort-Object Value
}
这可以获得我正在寻找的一个小缺陷的输出。我希望能够获取哈希表的密钥,并将其用作文件(类型DirectoryInfo
)。
这是一个与PowerShell中的哈希表有关的问题(至少我可以告诉,而不是特定于我上面的代码(包含它因为它是我遇到的需要)这个,它不会很长,关于如何使它“更惯用”的评论将不胜感激。)
如何从哈希表中获取文件?
答案 0 :(得分:0)
好吧,对于一个你使用$file.ToString()
作为密钥的人,所以PowerShell的缺陷并不在于你的代码。
您应该能够直接将DirectoryInfo
实例用作哈希表中的键(至少它是不可变的并覆盖object.Equals
)。