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 "\"
split メソッドは、上記のスクリプトの区切り文字\
でパス文字列を分割します。次に、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 でパスを分割するいくつかの例を学びました。また、\
区切り文字を使用してパスを結合する方法も示しました。