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 でパスを分割するためのいくつかの例を学びました。また、\\デリミタを使用してパスを結合する方法も示しました。
