Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【PowerShell】カレントディレクトリを基準にして相対パスから絶対パスを得る

System.IO名前空間のPathクラスのGetFullPathメソッドを使う。このメソッドはファイルやディレクトリの存在の判定するメソッドではなく、あくまでカレントディレクトリを基準にして絶対パスを作るだけであることに注意。

なお、GetFullPathメソッドの基準となるカレントディレクトリは、Get-Locationコマンドレットで得られるディレクトリではなく、System.IO名前空間のDirectoryクラスのGetCurrentDirectoryメソッドで得られるディレクトリであることにも注意。両者の違いについては、こちらを参照のこと。

PS D:\> [IO.Directory]::SetCurrentDirectory("C:\Windows\System32")
PS D:\> [IO.Path]::GetFullPath("OpenSSH")
C:\Windows\System32\OpenSSH
PS D:\> [IO.Path]::GetFullPath("abcdef")
C:\Windows\System32\abcdef
PS D:\> [IO.Path]::GetFullPath("..\123\456")
C:\Windows\123\456