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

リンク先のパスの取得

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

Last-modified: 2018-05-15 (火) 06:33:44 (94d)