добавить PATH с помощью SETX или PATHMAN или что-то еще?

12

Я пытаюсь добавить PATH из командной строки, как с SETX% PATH% ... он всегда расширяет PATH, что мне не нужно.

PATHMAN предназначен именно для этой цели, но он не работает для меня в Windows 7. Он в большинстве случаев зависает и не проверяет дубликаты.

Должен быть инструмент для правильного управления переменными PATH. SETX был бы идеальным, но, возможно, не с синтаксисом% PATH%.

hyperknot
источник

Ответы:

13

Смотрите статью Редактировать переменную среды PATH в Windows безболезненно .

Рекомендуется использовать pathed :

Например, скажем, что у вас есть инструменты Sysinternal в C: \ Bin \ Sysinternals, и вы хотите добавить их в PATH. Просто сделайте:

pathed /append C:\Bin\Sysinternals /machine

Если вы хотите добавить их в пользовательскую систему PATH, выполните:

pathed /append C:\Bin\Sysinternals /user
harrymc
источник
Это именно то, что я искал! Из статьи я попробовал другие 3 решения уже без счастья. Кажется, это именно то, что я искал. Работает отлично! Кстати, это не имеет ничего общего с Sysinternals.
hyperknot
Предполагается, что это работает, но имеет существенную ошибку: если вы попытаетесь добавить / добавить что-то к пути пользователя, а путь пользователя не определен, утилита не сможет добавить путь.
Сорин
1
Я только что попробовал это приложение; было неприятно, что это не сработало. Я понял, что должен запускать его во время входа в систему как администратор, ИЛИ запускать его в командной оболочке, которая была запущена с «Запуск от имени администратора». Кроме того, вам может потребоваться категорически использовать «/ machine», если вы хотите повлиять на путь уровня машины. Удачи! И спасибо @harrymc за подсказку; +1 от меня!
Дэн Х
FWIW, есть еще одна «исправленная» утилита, опубликованная на code.google.com, которая, похоже, делает то же самое с немного другим синтаксисом.
syneticon-dj
4

(Я знаю, что вы уже ответили на этот вопрос, но)

Проблема с использованием вами setxзаключается в том, что вы не цитируете строку, которую хотите установить. Поскольку ;символ является разделителем команд (вы можете вводить команды для его последовательного выполнения), он думает, что вы задаете путь, а затем запускаете другую команду.

Что вы должны сделать, это:

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

Это предопределяет мою %path%переменную с C:\perl\bin, потому что я хочу, чтобы она шла раньше всего, что может быть установлено. Это /Mозначает, что я имею в виду Систему EnvVar, а не пользователя.

gWaldo
источник
2
Он будет
обрезать
1

Есть три известных мне метода, один из которых является постоянным (при добавлении в переменные окружения), а другой - 2 r temp ... только для установки пути, и, таким образом, путь, заданный ими, уничтожается после завершения cmd (закрытия). Начиная с методов: -

  1. Временный метод 1: -

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

  2. Временный метод 2: -

    установить PATH = c: \ имя пути;% PATH%

  3. Постоянный метод: -

    исправлено / добавлено c: \ имя пути / машина (для всех пользователей) исправлено / добавлено c: \ имя пути / пользователь (для текущего пользователя)

Чайтанья Бхардвадж
источник
0

В Windows 10 x64 1909 (и, возможно, более ранних сборках) используйте функцию поиска в меню «Пуск» с «заданными переменными», чтобы найти и запустить любой из следующих возвращаемых результатов, чтобы получить доступ к пересмотренному графическому редактору MS, выбрав кнопку [Переменные среды]: - Отредактируйте системные переменные среды - отредактируйте переменные среды для своего аккаунта

Редактор также доступен с помощью кнопки [Переменные среды] в старом диалоговом окне «Свойства системы».

Барни Блю
источник