Я знаю, как установить системные или пользовательские переменные среды:
Теперь проблема в том, что PATH
переменная обрабатывается так, что значение, которое вы вводите для пользовательского PATH, будет автоматически добавлено к системному PATH, и это будет действительная переменная PATH.
То есть, скажем, у меня есть
(СИСТЕМА) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...
и (ПОЛЬЗОВАТЕЛЬ) PATH=C:\Program Files\Bar\bin
(обратите внимание, что нет %PATH%
в этом значении)
тогда результирующая переменная окружения для этого пользователя будет:
(Эффективная) PATH=C:\Windows\System32;C:\Program Files\Foo\bin;...;C:\Program Files\Bar\bin
Однако я бы хотел, чтобы для очень специфической учетной записи пользователя ОС переменная среды PATH имела bar\bin
каталог в начале PATH, а не в конце.
Есть ли правильный способ сказать Windows, чтобы полностью переопределить PATH
переменную пользователя со значением для этого пользователя вместо добавления его к системной PATH
переменной?
Примечание. Очевидно, что из пакетного файла все это не имеет значения, поскольку вы можете устанавливать и настраивать env.vars по своему усмотрению.
PATH
и эта конкретная учетная запись пользователя будет лучше обслуживаться при наличии другойPATH
. Я знаю, что есть много обходных путей, но мне было интересно, есть ли что-нибудь из коробки / на уровне ОС / реестра для достижения этой цели.Ответы:
Если это необходимо только для работы с сеансами командной строки, создайте пакетный файл профиля / init и настройте его в реестре по адресу /programming/17404165/how-to-run-a-command-on. -command-prompt-startup-in-windows . Например,
Затем просто внесите изменения в PATH в этом пакетном файле. Например,
источник
У меня была такая же проблема, и это сработало для меня:
Вы можете получить «переменную пути пользователя» через:
Вывод (на моей машине):
Но тогда вы должны разобрать это и использовать соответствующую часть.
Я прочитал решение здесь здесь и протестирован на моей машине.
источник
Я не знаю, как игнорировать системные переменные, но я знаю, что если вы используете переменные сеанса (через
SET
команду), они имеют приоритет над другими переменными. Таким образом, вы можете использоватьSET PATH=C:\Program Files\Bar\bin
инструкцию, и ваш желаемый путь будет первой частью переменной.Вот действительная ссылка, и я сообщаю здесь простой период с этой страницы:
источник
PATH
Переменная является исключением (особый случай) - пользовательская переменная имеет не имеют приоритет над системной переменной. Тот факт, что «переменная сеанса» будет иметь приоритет над предварительно установленными переменными пользователя и системы, является верным, но как автоматически установить переменную сеанса для пользователя? G-Wiz ответил на этот вопрос , и, AFAICS, вы ничего не добавили к этому ответу.