* ファイル操作 / シムリンクなファイルオブジェクトの参照 [#u5371296]
* シムリンクなファイルオブジェクトの参照 [#u5371296]
** リンク先のパスの取得 [#t4a6b977]
ファイルがシムリンクな場合、通常はTargetで視認できるが、
PS> dir *.txt | select Name, Target
Name Target
---- ------
1.txt {}
10.txt {C:\tmp\1.txt}
2.txt {}
実際はリストなので、ConvertTo-CSVみたいなコマンドに渡すと型名に変換されてしまう。
PS> dir *.txt | select Name, Target | ConvertTo-Csv -NoTypeInformation
"Name","Target"
"1.txt","System.Collections.Generic.List`1[System.String]"
"10.txt","System.String[]"
"2.txt","System.Collections.Generic.List`1[System.String]"
こういう場合は、無名のハッシュテーブルを作ってそこにリンク先のパスを入れる。
PS> dir *.txt | select Name, @{Name="LinkTo"; Expression={$_.Target[0]}} | ConvertTo-Csv -NoTypeInformation
"Name","LinkTo"
"1.txt",
"10.txt","C:\tmp\1.txt"
"2.txt",
と、このようにリンク先を取り出せる。