How to Split Directory Path in PowerShell

Rohan Timalsina Feb 02, 2024
  1. Use Split-Path Cmdlet to Split Directory or File Path in PowerShell
  2. Use the Split() Method to Split Directory or File Path in PowerShell
How to Split Directory 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.

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

Related Article - PowerShell Path