PowerShell で連携する 2 つの関数があります。
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
}
これにより、探している出力が得られますが、小さな欠陥が 1 つあります。ハッシュテーブルのキーを取得し、それをファイル (type ) として使用できるようにしたいDirectoryInfo
。
これは、一般的にpowershellのハッシュテーブルに関連する問題です(少なくとも私が知る限り、上記のコードに固有のものではありません(これの必要性に遭遇した方法であるため、含まれています)長すぎず、「より慣用的」にする方法についてのコメントをいただければ幸いです)。
ハッシュテーブルからファイルを取得するにはどうすればよいですか?