Set-Location, which has the alias cd, is used to navigate around a provider's hierarchy; for example:
Set-Location # The root of the current drive Set-Location Windows # A child container named Windows Set-Location .. # Navigate up one level Set-Location .... # Navigate up two levels Set-Location Cert: # Change to a different drive Set-Location HKLM:Software # Change to a specific child container under a drive
Set-Location may only be used to switch to a container object.
The print working directory (pwd) variable shows the current location across all providers:
PS> $pwd
Path
----
HKLM:SoftwareMicrosoftWindowsCurrentVersion
pwd and .NET:
.NET classes and methods are oblivious to PowerShell's current directory. When the following command is executed, the file will be created in the Start in path (if a shortcut started PowerShell):
[System.IO.File]::WriteAllLines('file.txt', 'Some content')
.NET constructors and methods are an ideal place to use the pwd variable:
[System.IO.File]::WriteAllLines("$pwdfile.txt", 'Some content')
.NET classes and methods are oblivious to PowerShell's current directory. When the following command is executed, the file will be created in the Start in path (if a shortcut started PowerShell):
[System.IO.File]::WriteAllLines('file.txt', 'Some content')
.NET constructors and methods are an ideal place to use the pwd variable:
[System.IO.File]::WriteAllLines("$pwdfile.txt", 'Some content')