7 votes

Pourquoi ne puis-je pas utiliser %USERPROFILE% dans %PATH%?

Sur ma machine Windows 7, en utilisant l'outil Propriétés du système > Variables d'environnement, 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 depuis la console, les fichiers dans mon dossier Bin ne sont pas trouvés, même si les fichiers dans le dossier System32 sont trouvés.

La seule différence entre UserProfile et SystemRoot que je peux voir est que le premier est une variable utilisateur alors que le second est une variable système.

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

Quel est le problème ici ?

12voto

Lauren Points 1076

Les variables système sont définies avant les variables utilisateur. Par conséquent, au moment où les variables système sont définies, aucune de vos variables utilisateur n'existe encore.

Vous pourriez être en mesure de créer une nouvelle variable utilisateur appelée PATH et de la définir sur "%USERPROFILE%\Bin;%PATH%". Je ne l'ai pas testé, mais cela pourrait faire ce que vous voulez. USERPROFILE pourrait encore ne pas être défini, donc vous pourriez avoir besoin d'entrer manuellement le chemin dans votre variable utilisateur, mais au moins cela n'affectera pas les autres utilisateurs de l'ordinateur.

5voto

Mitsos101 Points 141

Stephen Jennings avait raison, mais juste un peu de clarté. Dans Windows, si la variable utilisateur Path existe, elle est automatiquement ajoutée à la variable système Path. La variable utilisateur Path est autorisée à utiliser %UserProfile% tandis que la variable système obtient le texte littéral "%UserProfile%".

Donc, créer la variable utilisateur "Path" et la définir sur %UserProfile%\Bin était tout ce qui était nécessaire.

Exemple 1:

Variable système Path = C:\WINDOWS\ Variable utilisateur Path = %UserProfile%\Bin

Le chemin de l'utilisateur sera

C:\WINDOWS;C:\Utilisateurs\Utilisateur\Bin

Exemple 2:

Variable système Path = C:\WINDOWS\;%UserProfile%\Bin

La variable utilisateur Path n'est pas définie du tout.

Le chemin de l'utilisateur sera

C:\WINDOWS\;%UserProfile%\Bin

Vous ne voulez pas l'Exemple 2.

4voto

Taoist Points 141

Similaire à ce que Stephen a dit mais

Créez une variable d'environnement utilisateur appelée PATH A l'intérieur, vous pouvez utiliser %USERPROFILE% correctement - USERPROFILE est étendu avant que la section utilisateur ne soit traitée. Ce chemin utilisateur sera automatiquement ajouté au chemin système donc pas besoin d'ajouter la partie %PATH%.

par exemple

Variable système: PATH=c:\chemin1 Variable utilisateur PATH=%USERPROFILE%\chemin2

Chemin résultant: PATH=c:\chemin1;C:\Utilisateurs\monutilisateur\chemin2

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X