2013-03-27 00:54:35 +0000 2013-03-27 00:54:35 +0000
18
18

%USERPROFILE% variable ne travaillant pas

Si j'essaie de créer des fichiers dans l'invite de commande en utilisant les 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 avec

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

Comment puis-je résoudre ce problème ?

Réponses (4)

28
28
28
2013-03-27 00:59:51 +0000

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

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

Essayez

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

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

14
14
14
2013-03-27 01:13:49 +0000

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

Par défaut, %USERPROFILE% et C:\Users\%USERNAME% pointent au même endroit. Comme il n'est pas garanti que cela soit vrai, l'utilisation de %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écéder 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
8
8
8
2015-09-10 13:24:01 +0000

Il semble en fait que le PO ne cherche 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 de l'OP, il utiliserait

mkdir %APPDATA%\modinstaller\recovery
mkdir %APPDATA%\modinstaller\mods
-1
-1
-1
2015-07-30 11:35:01 +0000

La variable %USERPROFILE% inclut généralement le C:\Users\AccountName, donc l'utilisation correcte serait

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