PowerShell でディレクトリパスを分割

Rohan Timalsina 2023年1月30日
  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 "\"

split メソッドは、上記のスクリプトの区切り文字\でパス文字列を分割します。次に、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 パラメーターは、インデックス 1 および 3 を選択します。配列のインデックス値は 0 から始まります。

指示:

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

出力:

Windows\notepad.exe

この記事では、PowerShell でパスを分割するいくつかの例を学びました。また、\区切り文字を使用してパスを結合する方法も示しました。

著者: 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