PowerShell でディレクトリパスを分割する方法

  1. PowerShell でディレクトリまたはファイルパスを分割するための Split-Path コマンドレットの使用
  2. PowerShell でディレクトリまたはファイルパスを分割するための Split() メソッドの使用
PowerShell でディレクトリパスを分割する方法

PowerShell でパスを扱う際、ディレクトリやファイルパスを分割する必要がある場合があります。PowerShell には、パスを親パス、サブフォルダ、またはファイル名に分割する便利なコマンドレット Split-Path があります。

このチュートリアルでは、PowerShell でディレクトリまたはファイルパスを分割する方法を教えます。

PowerShell でディレクトリまたはファイルパスを分割するための Split-Path コマンドレットの使用

Split-Path コマンドレットは、PowerShell で与えられたパスの特定の部分を返します。パスの部分は親フォルダー、サブフォルダー、ファイル名、またはファイル拡張子のみです。

デフォルトでは、Split-Path はパスの親フォルダーを返します。次の例では、notepad.exe の親フォルダーである C:\Windows\System32 が表示されます。

コマンド:

Split-Path -Path "C:\Windows\System32\notepad.exe"

出力:

C:\Windows\System32

-Qualifier パラメータは、パスのクオリファイアを表示します。クオリファイアは、C:D:などのパスのドライブです。

コマンド:

Split-Path -Path "C:\Windows\System32\notepad.exe" -Qualifier

出力:

C:

-Leaf パラメータは、パスの最後のアイテムを印刷します。

コマンド:

Split-Path -Path "C:\Windows\System32\notepad.exe" -Leaf

出力:

notepad.exe

リーフのベース名を表示するには、LeafBase パラメータを使用します。これは、拡張子なしのファイル名を返します。

コマンド:

Split-Path -Path "C:\Windows\System32\notepad.exe" -LeafBase

出力:

notepad

-Extension パラメータを使用すると、リーフの拡張子のみを取得できます。

コマンド:

Split-Path -Path "C:\Windows\System32\notepad.exe" -Extension

出力:

.exe

レジストリパスのパスも Split-Path で分割できます。

コマンド:

Split-Path HKCU:\Software\Microsoft

出力:

HKCU:\Software

PowerShell でディレクトリまたはファイルパスを分割するための Split() メソッドの使用

文字列を配列に分割するには、Split() メソッドを使用します。このメソッドを使用して、パスの文字列を配列に分割できます。

その後、Select-Object を使用して、配列内の特定の位置を選択し、それらをパスとして結合できます。次の例では、パス C:\Windows\System32\notepad.exeC:\Windows に分割します。

コマンド:

$path = "C:\Windows\System32\notepad.exe".Split("\") | Select-Object -First 2
$path -join "\"

分割メソッドは、上記のスクリプトでデリミタ\\でパス文字列を分割します。その後、Select-Object にパイプされ、配列から最初の 2つのオブジェクトのみが選択されます。

最初のコマンドの結果は、変数 $path に格納されます。2 番目のコマンドは、$path の結果のオブジェクトを\\で結合し、新しいパスを作成します。

出力:

C:\Windows

次の例では、パス C:\Windows\System32\notepad.exeSystem32\notepad.exe に分割します。

コマンド:

$path = "C:\Windows\System32\notepad.exe".Split("\") | Select-Object -Last 2
$path -join "\"

出力:

System32\notepad.exe

パスの 2 番目と最後の要素が必要な場合、-Index パラメータを使用して配列内の特定の位置を選択できます。

-Index パラメータは、インデックス 13 を選択します。配列内のインデックス値は 0 から始まります。

コマンド:

$path = "C:\Windows\System32\notepad.exe".Split("\") | Select-Object -Index 1, 3
$path -join "\"

出力:

Windows\notepad.exe

この記事では、PowerShell でパスを分割するためのいくつかの例を学びました。また、\\デリミタを使用してパスを結合する方法も示しました。

チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
著者: Rohan Timalsina
Rohan Timalsina avatar Rohan Timalsina avatar

Rohan is a learner, problem solver, and web developer. He loves to write and share his understanding.

LinkedIn Website

関連記事 - PowerShell Path