もくじ
📝 はじめに
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コマンドを探す
やりたいことからコマンドを探すこともできます。
- ファイルを削除したい
- 一覧を表示したい
- 文字列を検索したい
- 条件で絞り込みたい
- エラーや実行できない原因を調べたい
- パスを分解して使いたい
- ファイル名だけを取得したい
