Как добавить пользователю% PATH% из командной строки

1

Я нашел много вопросов, подобных этому, на StackExchange, но в моем конкретном случае никто не работал.

Я хотел бы легко добавить буквально% FOO% к переменной окружения пользователя PATH.

Я нашел решение ниже. К сожалению, это не работает, как ожидалось.

for /f "skip=2 tokens=3*" %a in ('reg query HKCU\Environment /v PATH') do @if [%b]==[] ( @setx PATH "%~a;%FOO%" ) else ( @setx PATH "%~a %~b;%FOO%" )

Это не работает, если:

  • Пользовательская переменная PATH не существует
  • Пользовательский ПУТЬ существует и пуст
  • Пользовательский PATH имеет длину почти 255 символов.

Более того, он не добавляет% FOO% буквально, а расширяет его.

Есть ли возможность легко это сделать?

nowox
источник
Чтобы получить %FOO%буквально, попробуйте набрать %%FOO%%. Несколько связанное: Установка переменных среды и добавление к общесистемному% PATH% с помощью пакетного файла Windows
G-Man

Ответы:

3

Это зависит от того, что вы пытаетесь сделать:

  • Чтобы обновить PATH только текущий сеанс командной строки, используйте: set PATH=%PATH%;%FOO%.
  • Для того, чтобы изменить его только для текущего пользователя, используйте: setx PATH "%PATH%;%FOO%". Обратите внимание, что это изменение не отображается в текущем сеансе командной строки; вам нужно начать новую командную строку.
  • Для того, чтобы изменить его для всех пользователей на компьютере, используйте: setx /M PATH "%PATH%;%FOO%".

Вы можете просмотреть путь, набрав ECHO %PATH%в командной строке или проверив его в настройках среды Windows .

Кроме того, в Windows 7 и 8 максимальный размер строки переменной среды составляет 32 767 символов. Хотя это также верно для переменной PATH, максимальная длина команды в командной консоли составляет 8191 символ, поэтому необходимо учитывать это при использовании переменной PATH в командах командной строки. В любом случае, у вас есть больше свободного места над 256 символами, которые у вас есть сейчас.

agtoever
источник
Хорошие новости для максимальной длины!
nowox
Максимальная доступная длина переменной в командной консоли (cmd.exe) составляет 8191 байт (максимальная длина командной строки). Это верно с XP до Win 8. Я не проверял, правильно ли работают значения PATH длиннее 8191 байта, но я уверен, что нет. Так что да, большинство программ могут работать с переменными до 32 КБ, но большие значения не годятся для командной консоли.
dbenham
@dbenham: добавил замечание по этому поводу.
agtoever