[登録されているタグ]

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

PowerShellでパスを分割する|Split-Pathの使い方

📝 はじめに

PowerShellでファイルやパスを扱っていると、
「フルパスからフォルダ部分だけ取り出したい」
「ファイル名や拡張子だけを取得したい」
と感じる場面はよくあります。

そんなときに便利なのが
Split-Path です。
パスを構成要素ごとに分解できるため、
パス操作を安全かつ分かりやすく行える基本コマンドです。

こんな場面で便利

  • フルパスからフォルダ部分だけを取得したい
  • ファイル名や拡張子だけを使いたい
  • スクリプト内でパス情報を加工したい

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

  • パスから親ディレクトリを取得できる
  • ファイル名・拡張子を分離できる
  • ルートパスや末尾要素を取得できる
  • 文字列操作より安全に分解できる

✅ Split-Path でできること

Split-Path は、
フルパスを「フォルダ」「ファイル名」「ルート」などの要素に分解するコマンドです。

文字列として処理するのではなく、
パス構造を理解したうえで分割してくれるため、
OS依存や区切り文字の違いを意識せずに使えます。

考え方としては「住所から都道府県・市区町村を取り出す」ようなイメージです。

🧩 基本構文

Split-Path "対象のパス"

デフォルトでは、親ディレクトリ(フォルダ部分)が返されます。

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

🔹 親ディレクトリを取得する

Split-Path "C:\Data\sample.txt"

C:\Data が表示されていれば成功です。
この結果が表示されていれば問題ありません。

🔹 ファイル名だけを取得する

Split-Path "C:\Data\sample.txt" -Leaf

ファイル名(sample.txt)のみが返されます。
エラーが出なければ正常に取得できています。

🛠 よく使われる指定例

🔹 ルートパスを取得する

Split-Path "C:\Data\sample.txt" -Qualifier

ドライブ部分(C:\)が取得されます。

🔹 親の親(上位階層)を取得する

Split-Path "C:\Data\Logs\app.log" -Parent

1つ上のディレクトリ階層が返されます。

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

🔹 ファイル名を使って別名保存

$path = "C:\Data\sample.txt"
$name = Split-Path $path -Leaf
Join-Path "C:\Backup" $name

🔹 スクリプトの配置フォルダを基準にする

$scriptDir = Split-Path $MyInvocation.MyCommand.Path
Get-ChildItem $scriptDir
組み合わせ例

  • Join-Path と組み合わせて再構築
  • Test-Path で存在確認
  • Get-Location と併用して基準管理

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

  • デフォルトはファイル名ではなく親パスが返る
  • -Leaf を付けないとファイル名は取得できない
  • 拡張子だけを直接取得するコマンドではない
  • 存在しないパスでも分解はできる
  • UNCパスでも同様に使える

🔄 cmdとの違いについて

cmd では文字列操作で分解することが多いですが、
PowerShell の Split-Path
パス構造を理解した専用コマンドとして使えます。

可読性と安全性が大きく向上します。

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

  • -Leaf や -Qualifier などの指定を間違えていないか
  • 取得したい要素がどれかを整理しているか
  • 結果を文字列として正しく使っているか
  • 結合時に Join-Path を使っているか

🧠 注意点

Split-Path
パスを分解するだけで、存在確認は行いません。
実際に操作する前には
Test-Path を併用すると安全です。

📌 まとめ

  • Split-Path はパスを構成要素に分解する基本コマンド
  • -Leaf / -Parent / -Qualifier の使い分けが重要
  • Join-Path と組み合わせると非常に強力
  • 次は Join-Path との往復利用がおすすめ

🔎 PowerShellコマンドを探す

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

  • ファイルを削除したい
  • 一覧を表示したい
  • 文字列を検索したい
  • 条件で絞り込みたい
  • エラーや実行できない原因を調べたい
  • パスを分解して使いたい
  • ファイル名だけを取得したい
Generic filters

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

Generic filters


Generic filters

Generic filters

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