web-dev-qa-db-fra.com

Pourquoi ne puis-je pas utiliser% userprofile% en% Path%?

Sur ma machine Windows 7, à l'aide de Propriétés du système> Variables d'environnement Outil, j'essaie d'ajouter %USERPROFILE%\Bin à la variable système PATH. Pour une raison quelconque, cela ne fonctionne pas, même si %SystemRoot%\system32 fonctionne bien.

Lorsque j'essaie d'exécuter des commandes de la console, les fichiers de mon dossier BIN ne sont pas trouvés, même si des fichiers dans le dossier System32 sont trouvés.

La seule différence entre UserProfile et SystemRoot que je peux voir, c'est que le premier est une variable utilisateur pendant que ce dernier est une variable système.

echo %USERPROFILE%\Bin rendements c:\Users\zano, et si j'ajoute c:\Users\zano\Bin _ explicitement, tout fonctionne bien.

Quel est le problème ici?

7
Zano

Les variables système sont définies avant que les variables utilisateur soient. Par conséquent, aux variables du système horaire sont définies, aucune de vos variables d'utilisateur n'existe encore.

Vous pourrez peut-être créer une nouvelle variable utilisateur appelée chemin et le définir sur "%USERPROFILE%\Bin;%PATH%". Je ne l'ai pas testé, mais elle peut faire ce que vous voulez. UserProfile peut toujours ne pas être définie, cependant, vous devrez peut-être que le chemin de code dans votre variable utilisateur, mais au moins cela n'affectera pas d'autres utilisateurs de l'ordinateur.

12
Stephen Jennings

Stephen Jennings avait raison, mais juste une petite clarté. Sous Windows, si le chemin de variable utilisateur existe, il est automatiquement ajouté au chemin de la variable système. Le chemin de la variable utilisateur est autorisé à utiliser% userProfile% tandis que la variable système obtient le texte littéral "% userprofile%%".

Donc, créer une variable utilisateur "chemin" et le régler à% userprofile%\bin était tout ce qui était nécessaire.

Exemple 1:

Système Variable Chemin = C:\Windows\Change variable utilisateur =% UserProfile%\bin

Le chemin de l'utilisateur sera

C:\windows; c:\utilisateurs\user\bin

Exemple 2:

Système Variable Chemin = C:\Windows \;% UserProfile%\bin

La trajectoire variable de l'utilisateur n'est pas du tout définie.

Le chemin de l'utilisateur sera

C:\Windows \;% UserProfile%\bin

Vous ne voulez pas l'exemple 2.

5
Rodrick Williams

Semblable à ce que dit Stephen mais

Créez une variable d'environnement utilisateur appelée Chemin dans ce cas, vous pouvez utiliser% userProfile% correctement - UserProfile est développé avant la procédure de traitement de l'utilisateur. Ce chemin d'utilisateur sera automatiquement annexé au chemin du système afin qu'il ne soit pas nécessaire d'ajouter la partie% du chemin%.

par exemple.

Variable du système: Chemin = C:\PATH1 Path Variable utilisateur =% UserProfile%\PATH2

Chemin résultant: chemin = c:\path1; c:\users\myuser\path2

4
Taoist