Set default command prompt directory

It’s too difficult to set the default command prompt directory on Windows. I found several methods, none of which worked correctly.

In particular, it is common for people to set a “cd /d path” in their AutoRun key in the registry but this breaks the power toy and Windows 7′s built in hold shift and right click on a directory to open a command prompt there. This can be worked around by adding a /d to the shell extension in the registry.

What doesn’t seem to be mentioned anywhere though is that this AutoRun key also gets run when you double click on a batch file. That means a batch file which assumes its own current directory (a reasonable assumption – more reasonable than using absolute paths) may not be able to find files in the same directory as it.

What I really wanted to do was move my home directory to my D: drive but the command prompt was still opening on the C:

Most people also seem to only change the default directory of their command prompt to match a non-default home directory.

The first mistake I made was to type “cmd” into the start menu and right click on it to pin it there. This calls it “Windows Command Processor” and starts in C:\Windows\System32 (because that’s where cmd.exe lives). Instead, go through the start menu programs list and find “Command Prompt” under “Accessories” and pin that. It will correctly default to your home directory, because the “start in” is set to %HOMEDRIVE%%HOMEPATH%. Note that you could just change this shortcut’s arguments (cmd /k cd “PATH”) or start in but it will only change it for that one shortcut.

Anyway, once you are using “Command Prompt”, set your home directory. I’m using Windows 7 Pro, so I can go to Computer Management and just set the directory for my user in the GUI under “Users and Groups”. This is no longer available in home versions of Windows (they shouldn’t have removed it) but you may still be able to set your home directory by using the command

net user USERNAME /homedir:PATH

where “USERNAME” is your user name and “PATH” is the directory you want to set. You can check this with the command net user.

When I type “cmd” into the run dialogue, it still opens on C: but at least batch files work now. Further suggestions are welcome.

3 Responses to “Set default command prompt directory”

  1. Matt says:

    If %homedrive% and %homepath% are environment variables, can’t you just set them somewhere?

  2. George Helyar says:

    You can but just running cmd.exe directly still ignores them. Only the “Command Prompt” shortcut in the start menu actually uses them. They don’t work in the registry either. Using management/net user may do more than just set those variables too.

  3. George Helyar says:

    Update: Please don’t post comments saying to make a shortcut and edit the “start in” path. Not only is this already mentioned in the post (so you don’t need to post it again) but it also doesn’t change the default directory for cmd.exe, only for that shortcut. For example, it won’t change where start -> run -> cmd.exe defaults to.

Leave a Reply