[登録されているタグ]

[記事公開日]2025/12/18

PowerShellで相対パスを作る|Convert-Pathの使い方

📝 はじめに

PowerShellでパスを扱っていると、
「ワイルドカードを含むパスを確定させたい」
「Provider形式ではなく、実際のパス文字列として扱いたい」
と感じることはありませんか?

そんなときに使われるのが
Convert-Path です。
一見すると「相対パスを作る」ように見えますが、
実際には存在するパスを解決し、実体のあるパス文字列に変換する
ためのコマンドです。

こんな場面で便利

  • ワイルドカードを含むパスを確定させたい
  • Provider依存の表現を実パスとして扱いたい
  • 後続コマンドに安全なパスを渡したい

✅ このコマンドでできること(要点)

  • 存在するパスを実体のあるパス文字列に変換できる
  • ワイルドカードを展開して確定パスを取得できる
  • Provider形式ではない通常のパスとして扱える
  • Resolve-Path と似ているが用途が異なる

✅ Convert-Path でできること

Convert-Path は、
指定したパスを評価し、
実際に存在するパスを文字列として返すコマンドです。

Resolve-Path がオブジェクトを返すのに対し、
Convert-Path は「パス文字列」として返す点が特徴です。

考え方としては「曖昧な指定を、実体のあるパスに確定させる」と覚えると分かりやすいでしょう。

🧩 基本構文

Convert-Path "変換したいパス"

指定したパスが存在していれば、確定したパスが返されます。

▶ 基本的な使い方(まずこれだけ)

🔹 相対パスを確定パスに変換する

Convert-Path .\test.txt

現在の作業ディレクトリを基準に、
実体のあるパスが表示されていれば成功です。
この結果が表示されていれば問題ありません。

🔹 ワイルドカードを含むパスを変換する

Convert-Path .\logs\*.log

条件に一致するファイルのパスが、
すべて展開されて返されます。
エラーが出なければ正常に動作しています。

🛠 よく使われる指定例

🔹 変数に格納して使う

$path = Convert-Path .\data.csv
$path

後続処理にそのまま渡せるパス文字列になります。

🔹 配列として扱う

$files = Convert-Path .\logs\*.log

複数ヒットした場合は、配列として取得されます。

💼 実務でよく使う使用例(応用)

🔹 Import-Csv などに安全に渡す

$csv = Convert-Path .\data\*.csv
Import-Csv $csv

🔹 存在確認後に処理を行う

if (Test-Path .\config.json) {
    $config = Convert-Path .\config.json
}
組み合わせ例

  • Test-Path で事前確認
  • Join-Path で生成 → Convert-Path で確定
  • Resolve-Path との使い分け

🧩 よくある勘違い・つまずきポイント

  • 「相対パスを作る」コマンドではない
  • 存在しないパスは変換できない
  • 結果はオブジェクトではなく文字列
  • ワイルドカードが複数ヒットすると配列になる
  • 相対パスが欲しい場合は別の方法が必要

🔄 cmdとの違いについて

cmd ではパスは基本的に文字列として扱われますが、
PowerShell の Convert-Path
Providerの解決を行ったうえで安全なパスを返します。

スクリプト向けの堅牢な設計が特徴です。

⚠ エラー・うまく動かないときの確認ポイント

  • 指定したパスが実際に存在しているか
  • ワイルドカードの指定が正しいか
  • 配列として返ってきていないか
  • 相対パスと絶対パスの違いを理解しているか

🧠 注意点

Convert-Path
「存在しているパスを確定させる」ためのコマンドです。
相対パスそのものを生成したい場合は、
Resolve-Path -Relative など別の方法を検討しましょう。

📌 まとめ

  • Convert-Path はパスを確定した文字列に変換するコマンド
  • ワイルドカードや相対指定を安全に解決できる
  • 存在しないパスは扱えない点に注意
  • 用途に応じて Resolve-Path / Join-Path と使い分ける

🔎 PowerShellコマンドを探す

やりたいことからコマンドを探すこともできます。

  • ファイルを削除したい
  • 一覧を表示したい
  • 文字列を検索したい
  • 条件で絞り込みたい
  • エラーや実行できない原因を調べたい
  • パスを確定させて使いたい
  • ワイルドカードを展開したい
Generic filters

サイト内検索(入力すると候補が出ます)

Generic filters


Generic filters

Generic filters

すべてを開く | すべてを閉じる
ページ上部へ戻る