ファイル操作 / シムリンクなファイルオブジェクトの参照

リンク先のパスの取得

ファイルがシムリンクな場合、通常は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",

と、このようにリンク先を取り出せる。


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS