171

My PowerShell prompt's currently pointed to my C drive (PS C:\>). How do I change directory to a folder on my Q (PS Q:\>) drive?

The folder name on my Q drive is "My Test Folder".

2
  • 2
    simple as this cd -Path Q:/ Commented Sep 19, 2020 at 12:20
  • For those that need to change directory temporarily, e.g. in a script, there's Push-Location and Pop-Location Commented Nov 10, 2023 at 18:04

9 Answers 9

268

Unlike the CMD.EXE CHDIR or CD command, the PowerShell Set-Location cmdlet will change drive and directory, both. Get-Help Set-Location -Full will get you more detailed information on Set-Location, but the basic usage would be

PS C:\> Set-Location -Path Q:\MyDir

PS Q:\MyDir> 

By default in PowerShell, CD and CHDIR are alias for Set-Location.

(Asad reminded me in the comments that if the path contains spaces, it must be enclosed in quotes.)

Sign up to request clarification or add additional context in comments.

5 Comments

You have to enclose the path in "" otherwise it will give you error. Command will look like this Set-Location "Q:\My Test Folder"
@Asad - Good point, and one that I should have included originally, though quoting is only necessary if the path contains spaces.
cmd.exe supports "cd /d e:\somedirectory" to also switch drives
The command works even without including the -Path parameter. Why? Is it always the case?
For the Set-Location cmdlet, since the most common use will be to use it like the old CD command, it makes sense for the "default" interpretation of an omitted parameter name to be to assume that it's the -Path parameter, and that's how the cmdlet was written. Other cmdlets may not default the same way. See the help information (linked in the answer) for a more detailed discussion.
46

To go directly to that folder, you can use the Set-Location cmdlet or cd alias:

Set-Location "Q:\My Test Folder"

Comments

29

Multiple posted answer here, but probably this can help who is newly using PowerShell

enter image description here

SO if any space is there in your directory path do not forgot to add double inverted commas "".

2 Comments

Single quotes will work as well, e.g., Set-Location 'C:\Path With Spaces'
double inverted commas 🤦‍♂️
27

You can simply type Q: and that should solve your problem.

5 Comments

It doesn't seem to work. Am I doing this correctly? PS C:\> Q:
Are you sure it's there? I guess if it's Q:/ drive that that is some sort of removable media, it is maybe something as simple as plugging it in.
The assumption is that the drive Q does in fact exist. If it does not, PowerShell will throw an error specifying that the drive does not exist.
Oh, yeah, my bad.
Love simple solutions :)
13
Set-Location -Path 'Q:\MyDir'

In PowerShell cd = Set-Location

2 Comments

This must be one of the worlds best reason not to use Powershell.
Since aliases can be removed and redefined, I will always use the expanded cmdlet in answers here - I can't assume that just because I haven't removed or changed the cd alias, neither have you.
5

You can also use the sl command to be able to change directories. It is Set-Location but it is much shorter.

Example:

# Too verbose
Set-Location -Path C:\

# Just the right amount of characters to type
sl C:\

Comments

3

I don't know why everyone talks about Set-Location and the fact that cd does not change drive and directory, in fact it actually does it (in powershell, not cmd), you just need to put quotes (single or double) around if there are spaces in folder name(s), also you can just type drive letter if you just want to go to its root:

enter image description here

Edit: now I started editing my PowerShell scripts with a "real" IDE I understood why everyone talks about Set-Location, cd is just an alias to it:

enter image description here

Comments

1

If your Folder inside a Drive contains spaces In Power Shell you can Simply Type the command then drive name and folder name within Single Quotes(''):

Set-Location -Path 'E:\FOLDER NAME'

The Screenshot is attached here

Comments

0
  1. On Powershell use Set-Location instead of cd.
  2. Put path in quotes. Single quotes works for me.

Set-Location 'C:\Program Files\MongoDB\Server\6.0'

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.