この記事でできること
PowerShellを使用して、Windowsの冗長なパス名や相対パスを絶対パスへ安全に正規化(解決)する方法を解説します。
パス名の正規化とは
パス名の正規化とは、パス名を決まったルールに従って整形し、相対パスを絶対パスに変換したり、冗長な表現(.や..など)を省略したりすることです。
例えば、Windowsの場合、以下のようなパス表現があるとします。
C:\Users\ExampleUser\..\ExampleFolder\file.txt
このパス表現は、..\を使って上位のフォルダに移動しているため、冗長であり、実際のファイルの場所が正しく表されていません。パス名の正規化を行うことで、この表現を以下のように変換することができます。
C:\ExampleFolder\file.txt
PowerShellで実装する例
PowerShellから.NETの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:\ExampleFolder\file.txt
公式情報・参考リンク
Microsoft Learn: Path.GetFullPath メソッド (System.IO)
この記事の更新履歴
この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。
2026年9月12日
- 変更PowerShellの実行例をコードブロック形式に変更しました。
- 追加パス名の正規化における前提条件と実行手順を追加しました。
