How to Split Directory Path in PowerShell
-
Use
Split-PathCmdlet to Split Directory or File Path in PowerShell -
Use the
Split()Method to Split Directory or File Path in PowerShell
While working with paths in PowerShell, sometimes you may need to split the directory or file path. PowerShell has a handy cmdlet Split-Path that lets you split a path to a parent path, subfolder, or file name.
This tutorial will teach you to split the directory or file path in PowerShell.
Use Split-Path Cmdlet to Split Directory or File Path in PowerShell
The Split-Path cmdlet returns the specific part of a given path in PowerShell. The part of a path can be the parent folder, subfolder, file name, or a file extension only.
By default, the Split-Path returns the parent folder of the path. The following example will display C:\Windows\System32, the parent folder of the notepad.exe.
Command:
Split-Path -Path "C:\Windows\System32\notepad.exe"
Output:
C:\Windows\System32
The -Qualifier parameter displays the qualifier of the path. The qualifier is the drive of the path, such as C:, D:.
Command:
Split-Path -Path "C:\Windows\System32\notepad.exe" -Qualifier
Output:
C:
The -Leaf parameter prints the last item of the path.
Command:
Split-Path -Path "C:\Windows\System32\notepad.exe" -Leaf
Output:
notepad.exe
To display the base name of the leaf, use the LeafBase parameter. It returns the file name without an extension.
Command:
Split-Path -Path "C:\Windows\System32\notepad.exe" -LeafBase
Output:
notepad
You can use the -Extension parameter to get only the leaf extension.
Command:
Split-Path -Path "C:\Windows\System32\notepad.exe" -Extension
Output:
.exe
You can also split paths of the registry path with Split-Path.
Command:
Split-Path HKCU:\Software\Microsoft
Output:
HKCU:\Software
Use the Split() Method to Split Directory or File Path in PowerShell
To divide a string into an array, use the Split() method. You can use this method to split strings of a path into an array.
Then you can use Select-Object to select specific positions in an array and join them as a path. The following example splits the path C:\Windows\System32\notepad.exe to C:\Windows.
Command:
$path = "C:\Windows\System32\notepad.exe".Split("\") | Select-Object -First 2
$path -join "\"
The split method splits a path string on the delimiter \ in the above script. It is then piped to the Select-Object, selecting only the first two objects from an array.
The outcome of the first command is stored on the variable $path. The second command joins the resulting objects in $path with \ and creates a new path.
Output:
C:\Windows
The following example splits the path C:\Windows\System32\notepad.exe to System32\notepad.exe.
Command:
$path = "C:\Windows\System32\notepad.exe".Split("\") | Select-Object -Last 2
$path -join "\"
Output:
System32\notepad.exe
Suppose you need the second and last element in the path. Then you can use the -Index parameter to select specific positions in an array.
The -Index parameter selects indexes 1 and 3. The index value in an array starts from 0.
Command:
$path = "C:\Windows\System32\notepad.exe".Split("\") | Select-Object -Index 1, 3
$path -join "\"
Output:
Windows\notepad.exe
In this article, we learned several examples to split paths in PowerShell. We also showed you how to join the path with a \ delimiter.
