web-dev-qa-db-fra.com

La variable% USERPROFILE% ne fonctionne pas

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 va créer les fichiers sans problèmes.

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 avec

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

Comment puis-je réparer ça?

15
user210720

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

Voir ce tableau fantastique 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 correspond à l'emplacement du répertoire de profil de l'utilisateur actuel, dans lequel se trouve le registre HKEY_CURRENT_USER (HKCU) de l'utilisateur, Hive (NTUSER).

25
G Koe

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

Par défaut, %USERPROFILE% et C:\Users\%USERNAME% désignent le même emplacement. Puisque ceci n'est pas garanti, utiliser %USERPROFILE% est une approche plus fiable.

En général, lors du débogage d’une commande telle que

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

votre première étape devrait être de préfixer 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
12
Dennis

En fait, 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 est d'utiliser

%APPDATA%

Dans l'exemple du PO, il utiliserait

mkdir %APPDATA%\modinstaller\recovery
mkdir %APPDATA%\modinstaller\mods
7
Speedbird186