La variable% USERPROFILE% ne fonctionne pas

17

Si j'essaie de créer des fichiers dans l'invite de commande à l'aide des commandes

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

mon ordinateur créera les fichiers sans problème.

Cependant, si j'utilise les commandes

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

l'invite de commande répond par

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

Comment puis-je réparer ça?

user210720
la source

Réponses:

27

La %UserProfile%variable est une variable d'environnement spéciale à l'échelle du système qui est complète en soi. Il contient%SystemDrive%\Users\{username}

Consultez ce fantastique tableau qui met en évidence les différences entre les variables dans Windows XP (NT5) et Windows Vista / 7/8 (NT6) .

Essayer

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

Sa valeur est l'emplacement du répertoire de profil de l'utilisateur actuel, dans lequel se trouve la ruche de registre HKEY_CURRENT_USER (HKCU) de cet utilisateur (NTUSER).

G Koe
la source
13

Je suppose que vous avez mélangé les variables %USERPROFILE%et %USERNAME%.

Par défaut, %USERPROFILE%et C:\Users\%USERNAME%pointez sur le même emplacement. Comme cela n'est pas garanti pour être vrai, l'utilisation %USERPROFILE%est une approche plus fiable.

En général, lors du débogage d'une commande comme

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

votre première étape devrait être de pré-ajouter echo.

La commande

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

vous aurait montré ce qui suit:

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

ce qui n'est clairement pas ce que vous voulez.

Vous pouvez également interroger la valeur de %USERPROFILE%en exécutant

set USERPROFILE

Pour voir toutes les variables d'environnement actuellement définies, exécutez

set
Dennis
la source
8

Il semble que l'OP ne recherche pas seulement C: \ Users \ Someone, mais le dossier AppData \ Roaming de cet utilisateur. Donc, le chemin le plus rapide à utiliser

%APPDATA%

Dans l'exemple du PO, il utiliserait

mkdir %APPDATA%\modinstaller\recovery
mkdir %APPDATA%\modinstaller\mods
Speedbird186
la source
-1

La variable% USERPROFILE% inclut généralement le C: \ Users \ AccountName afin que l'utilisation correcte soit

mkdir% USERPROFILE% \ AppData \ Roaming \ modinstaller \ recovery

user475349
la source
Cela a déjà été expliqué dans les deux réponses existantes. Si vous les aimez, essayez de gagner une certaine réputation et de les voter quand vous avez 15 représentants .
gronostaj
Bienvenue sur Super User! Cela duplique une autre réponse et n'ajoute aucun nouveau contenu. Veuillez ne pas poster de réponse à moins que vous ayez réellement quelque chose de nouveau à apporter.
DavidPostill