Powershellを使ったパス名の正規化

Tech

パス名の正規化とは

パス名を決まったルールに従って整形例えば、相対パスを絶対パスに変換したり、冗長な表現を省略したりすること。

例えば、Windowsの場合、以下のようなパス表現があるとします。

C:\Users\ExampleUser\..\ExampleFolder\file.txt

このパス表現は、..\を使って上位のフォルダに移動しているため、冗長であり、実際のファイルの場所が正しく表されていません。パス名の正規化を行うことで、この表現を以下のように変換することができます。

C:\ExampleFolder\file.txt

Powershellで実装する例

PowerShellからSystem.IO.PathクラスのGetFullPathメソッドを使用し、指定されたパスを正規化することができます。

$path = "C:\Users\ExampleUser\..\ExampleFolder\file.txt"
$normalizedPath = [System.IO.Path]::GetFullPath($path)

write-output "パス正規化前:$path" 
write-output "パス正規化後:$normalizedPath
" 

実行結果

パス正規化前:C:\Users\ExampleUser\..\ExampleFolder\file.txt
パス正規化後:C:\Users\ExampleFolder\file.txt
ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました