У меня есть переменная PATH системы с конфигурацией системного уровня. Я использую переменную PATH пользователя, чтобы дополнить PATH специфичной для пользователя конфигурацией.
Я хотел бы обновить пользовательскую переменную PATH из командной строки, например, с помощью setx.
Но я не знаю, как ссылаться на существующий путь пользователя в setx.
В следующей команде (setx без / M)
setx PATH c:\my-user-specifc-bin-path;%PATH%
первый PATH означает пользовательский PATH, но второй% PATH% будет заменен «полным» (user + system) PATH.
Таким образом, это означает, что весь системный путь будет продублирован в пользовательском PATH ... что, безусловно, не то, что я хочу.
Я хотел бы:
- Влияет только на переменную окружения PATH пользователя
- Добавить / добавить один или несколько элементов пути к существующему значению
- Сделайте это из командной строки.
windows
command-line
path
environment-variables
Кристиан Лемер
источник
источник
;%PATH%
вы запрашиваете существующий путь (производный от системного пути), который будет добавлен.Ответы:
Версия PowerShell, установите PATH для пользователя:
источник
Чтобы установить ПУТЬ пользователя, перезаписывающую любое предыдущее значение:
Чтобы добавить значение «C: \ MyPath0» к существующей пользовательской переменной PATH:
Чтобы добавить значение «C: \ MyPath2» в существующий путь пользователя:
Условие if-else является обязательным, поскольку пользовательский PATH может содержать или не содержать пробелы. Если вы хотите, вы можете сохранить команды как общие пакетные файлы (обязательно удваивайте каждый знак%), которые принимают значение, которое будет установлено / добавлено / добавлено в качестве аргумента.
Пакетный файл
источник
for /?
расскажет вам все, что вам нужно знать. :) Я не хотел копировать все это здесь без необходимости и думал, что информация будет легко понять в любом случае.PATH
точкой с запятой, и в этом случае добавление переданного каталога должно выполняться без дополнительной точки с запятой. Но самая большая проблема в этом коде - это искажение пользователя,PATH
если строка становится длиннее 1024 символов из-заsetx
усечения строки до 1024 символов с отображением соответствующей информации перед добавлением ее в реестр Windows. Так что может случиться так, что вместо добавления переданного каталога, существующий пользовательPATH
усекается (искажается) этим кодом.нужно
SETX /M
, по умолчаниюSETX
установленоHKEY_CURRENT_USER
источник
Это похоже на работу:
источник
PATH
с использованием локальныхPATH
. Эта командная строка действительно портит пользователяPATH
, добавляя в реестр Windows для пользователяPATH
строкуc:\my-user-specifc-bin-path-which-may-contain-spaces;%C:\Windows\System32;C:\Windows;C:\Windows\System32\wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;%
в лучшем случае. Каждый, кто использует эту командную строку, успешно повредил настройки пользователяPATH
и стал локальным,PATH
что используется всеми процессами, запущенными с текущей учетной записью пользователя, после перезапуска Windows или выхода из системы / входа в систему.