%USERPROFILE% variable not working

If I try to create files in the command prompt using the commands

mkdir C:\Users\Tristan\AppData\Roaming\modinstaller\recovery
mkdir C:\Users\Tristan\AppData\Roaming\modinstaller\mods

my computer will create the files without problems.

However, if I use the commands

mkdir C:\Users\%USERPROFILE%\AppData\Roaming\modinstaller\recovery
mkdir C:\Users\%USERPROFILE%\AppData\Roaming\modinstaller\mods

the command prompt responds with

The filename, directory name, or volume label syntax is incorrect.

How do I fix this?


The %UserProfile% variable is a special system-wide environment variable that is complete in and of itself.  It contains %SystemDrive%\Users\{username}

See this fantastic table that highlights the differences between variables in windows XP (NT5) and Windows Vista/7/8 (NT6).

Try

mkdir %userprofile%\AppData\Roaming\modinstaller\mods

Its value is the location of the current user's profile directory, in which is found that user's HKEY_CURRENT_USER (HKCU) registry hive (NTUSER).


I assume you mixed up the variables %USERPROFILE% and %USERNAME%.

By default, %USERPROFILE% and C:\Users\%USERNAME% point to the same location. Since this is not guaranteed to be true, using %USERPROFILE% is a more reliable approach.

In general, when debugging a command like

mkdir C:\Users\%USERPROFILE%\AppData\Roaming\modinstaller\recovery

your first step should be to prepend echo.

The command

echo mkdir C:\Users\%USERPROFILE%\AppData\Roaming\modinstaller\recovery

would have shown you the following:

mkdir C:\Users\C:\Users\Tristan\AppData\Roaming\modinstaller\recovery

which is clearly not what you want.

You can also query the value of %USERPROFILE% by executing

set USERPROFILE

To see all currently defined environment variables, execute

set

It actually appears the OP is looking not just for C:\Users\Someone but that user's AppData\Roaming folder. So, the quickest path there is to use

%APPDATA%

In the OP's example, he would use

mkdir %APPDATA%\modinstaller\recovery
mkdir %APPDATA%\modinstaller\mods

in PowerShell do not use

mkdir C:\Users\%USERPROFILE%\AppData\Roaming\modinstaller\recovery

use this:

mkdir $home\AppData\Roaming\modinstaller\recovery