ajouter PATH avec SETX ou PATHMAN ou autre chose?


12

J'essaie d'ajouter un CHEMIN à partir de la ligne de commande, comme avec SETX% PATH% ... il étend toujours le CHEMIN, ce que je ne veux pas.

PATHMAN est exactement dans ce but, mais cela ne fonctionne pas pour moi sur Windows 7. Il se fige la plupart du temps et ne vérifie pas les doublons.

Il doit y avoir un outil pour gérer correctement les variables PATH. SETX serait parfait, mais peut-être pas avec la syntaxe% PATH%.

Réponses:


13

Voir l'article Modifier la variable d'environnement PATH dans Windows sans douleur .

Il recommande d'utiliser pathed :

Par exemple, supposons que vos outils Sysinternal se trouvent dans C: \ Bin \ Sysinternals et que vous souhaitez les ajouter au PATH. Faites simplement:

pathed /append C:\Bin\Sysinternals /machine

Si vous souhaitez plutôt les ajouter au système PATH utilisateur, procédez comme suit:

pathed /append C:\Bin\Sysinternals /user

Ceci est exactement ce que je cherchais! De l'article, j'ai déjà essayé les 3 autres solutions sans bonheur. Il semble que ce soit celui que je cherchais. Marche parfaitement! BTW, cela n'a rien à voir avec Sysinternals.
hyperknot

Ceci est censé fonctionner mais il a un bogue essentiel, si vous essayez d'ajouter / ajouter quelque chose au chemin utilisateur et que le chemin utilisateur n'est pas défini, l'utilitaire ne pourra pas ajouter le chemin.
sorin

1
Je viens d'essayer cette application; c'était frustrant que cela ne semble pas fonctionner. J'ai réalisé que je dois l'exécuter en étant connecté en tant qu'administrateur, OU l'exécuter dans un shell de commande qui a été démarré avec "Exécuter en tant qu'administrateur". En outre, vous devrez peut-être utiliser catégoriquement «/ machine» si vous souhaitez affecter le chemin au niveau de la machine. Bonne chance! Et merci à @harrymc pour l'astuce; +1 de moi!
Dan H

FWIW, il existe un autre utilitaire "pathed" publié sur code.google.com qui semble faire à peu près la même chose avec une syntaxe légèrement différente.
syneticon-dj

4

(Je sais que vous avez déjà répondu à cette question, mais)

Le problème avec votre utilisation de setxest que vous ne citez pas la chaîne que vous souhaitez définir. Étant donné que le ;caractère est un délimiteur de commande (vous pouvez enchaîner des commandes à exécuter en succession avec lui), il pense que vous définissez le chemin d'accès, puis exécutez une autre commande.

Ce que vous devez faire est le suivant:

setx /M path "C:\perl\bin;%path%"

Cela ajoute ma %path%variable C:\perl\bin, car je veux qu'elle vienne avant tout ce qui peut être installé. Les /Mses moyens que je veux dire le système EnvVar, pas l'utilisateur.


2
Il tronquera les chemins de plus de 1024
wayofthefuture

1

Il y a trois méthodes que je connais dont l'une est permanente (lors de l'ajout de variables d'environnement) et d'autres 2 r temp .. juste pour définir le chemin et donc le chemin défini par eux est détruit après que cmd soit terminé (fermé). En commençant par les méthodes: -

  1. Méthode temporaire 1: -

    setx PATH "% PATH%; c: \ path name;"

  2. Méthode temporaire 2: -

    set PATH = c: \ path name;% PATH%

  3. Méthode permanente: -

    pathed / append c: \ path name / machine (pour tous les utilisateurs) pathed / append c: \ path name / user (pour l'utilisateur actuel)


0

Sous Windows 10 x64 1909 (et probablement les versions antérieures), utilisez la fonction de recherche du menu Démarrer avec "définir des variables" pour rechercher et exécuter l'un des résultats renvoyés suivants pour accéder à l'éditeur graphique révisé MS en sélectionnant le bouton [Variables d'environnement]: - Modifiez le variables d'environnement du système - Modifier les variables d'environnement pour votre compte

L'éditeur est également accessible via le bouton [Variables d'environnement] de l'ancienne boîte de dialogue Propriétés système.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.