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

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.exe
を C:\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.exe
を System32\notepad.exe
に分割します。
コマンド:
$path = "C:\Windows\System32\notepad.exe".Split("\") | Select-Object -Last 2
$path -join "\"
出力:
System32\notepad.exe
パスの 2 番目と最後の要素が必要な場合、-Index
パラメータを使用して配列内の特定の位置を選択できます。
-Index
パラメータは、インデックス 1
と 3
を選択します。配列内のインデックス値は 0
から始まります。
コマンド:
$path = "C:\Windows\System32\notepad.exe".Split("\") | Select-Object -Index 1, 3
$path -join "\"
出力:
Windows\notepad.exe
この記事では、PowerShell でパスを分割するためのいくつかの例を学びました。また、\\
デリミタを使用してパスを結合する方法も示しました。