PowerShell: Path Tutorial

By Xah Lee. Date: . Last updated: .

Path parameter

Many commands have a -Path parameter.

Path parameter is a positional parameter and named parameter. That means, it can be first arg, or with -path value anywhere.

# list files of a given path
dir "c:/Program Files/"

# or
dir -Path "c:/Program Files/"

Path Value is String Type

# use quote when path contains space
dir "c:/Program Files/"
# path value of double quoted string
# or
# no quote
# goes thru string expansion
# watch out for dollar sign in it

$xx = " Files"
dir c:/Program$xx/

# same as
dir "c:/Program Files/"

Path Expansion

Path value can contain abbrev, such as beginning ~ to mean $home, and String Wildcards such as * for any characters.

Path value is expanded by path expansion. (even for single quoted path.)

Default Path Value

If Path parameter is omitted, default value is current dir (except the cd command, which default to $home).


# same as
dir .

# same as
dir (Get-Location)

Relative Path, Full Path

The -Path parameter accepts both full path or relative path.

cd $home

dir "Documents"
# same as
dir "$home/Documents/"

Path separator

Path separator is the backslash, but slash is also supported. They can be mixed.

All the following works the same:

single dot, double dots

# go up one dir
cd ..

# go up two dirs
cd ../..

show current dir

Get-Location (alias gl, pwd) return the current dir.

PowerShell Path

PowerShell, Working with Directory