PowerShell 実在しない絶対・相対パスの変換


PowerShell 実在しない絶対・相対パスの変換

概要

PowerShellのResolve-Pathコマンドレットで、絶対パスと相対パスの変換が可能である。
しかし、実在しない(これから作る)パスの変換はこのコマンドレットではできない。
ドットネットのメソッドを使えば実在しないパスの変換もできる。
コマンドレットと違い広く知られた情報ではないため、
筆者の備忘録を兼ねて記事とする。

一般的な注意

基点パスは絶対パスで指定するのが望ましい。
理由は、PowerShellでは、 DotNetメソッドとコマンドレットのデフォルトの基点パスが異なるため、
基点を相対パスで入力した場合、
PowerShellでなくドットネットのデフォルト基点パスを使って計算されるからである。

絶対パスの取得

[System.IO.Path]::GetFullPath(相対パス, 基点パス)

相対パスの取得

[System.IO.Path]::GetRelativePath(基点パス, 絶対パス)

まとめ

PowerShellで実在しない絶対パスや相対パスの相互変換をする場合、
ドットネットメソッドを使う。
しかし、その際に基点パスは絶対パスで指定すべきである。
コマンドレットとドットネットメソッドでは
デフォルトの基点パスが違うためである。

 

  • このエントリーをはてなブックマークに追加

PAGE TOP