22

The original User's Profile directory lives in a directory like C:\Users\username\AppData.

How can I refer to the current user's profile directory when using the Windows command line?

By searching I found out about %UserProfile% that perhaps refer to the current username, but it does not really work. When I tried using it, I received the error "The filename, directory name, or volume label syntax is incorrect".

Matt
  • 444
super
  • 321

3 Answers3

17

Here are some of the common system path variables on windows, but check here for a complete reference:

| Variable       | Default Value                                                                |
|----------------|------------------------------------------------------------------------------|
| %SystemDrive%  | C:                                                                           |
| %ProgramFiles% | C:\Program Files                                                             |
| %AppData%      | C:\Users\{username}\AppData\Roaming                                          |
| %LocalAppData% | C:\Users\{username}\AppData\Local                                            |
| %UserProfile%  | C:\Users\{username}                                                          |
| %UserName%     | {username}                                                                   |
| %COMPUTERNAME% | {computername}                                                               |
| %PATH%         | C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;{plus program paths} |

These should automatically be expanded when using the windows cmd prompt (or bash / powershell):

cd %UserProfile%

Your specific issue here seems to be using UserProfile instead of UserName. Either use cd %UserProfile% or cd C:\Users\%UserName%

Further Reading:

KyleMit
  • 6,865
4

Run a command shell (start/Run, then "cmd") and type "set". This will list all the environmental variables available. Having said that, USERPROFILE is perfectly valid. There's also APPDATA and LOCALAPPDATA.

Ramhound
  • 44,080
carveone
  • 327
1

If you are in PowerShell you could plug into a Win API.

List of possible names are:

[Environment+SpecialFolder].GetEnumNames()

You extract values by:

> [Environment]::GetFolderPath([Environment+SpecialFolder]::Windows)
C:\WINDOWS
> [Environment]::GetFolderPath([Environment+SpecialFolder]::CommonPrograms)
C:\ProgramData\Microsoft\Windows\Start Menu\Programs
> [Environment]::GetFolderPath([Environment+SpecialFolder]::CommonVideos)
C:\Users\Public\Videos
> [Environment]::GetFolderPath([Environment+SpecialFolder]::MyPictures)
C:\Users\user\Pictures
gavenkoa
  • 2,154