Я нашел много вопросов, как этот на 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% буквально, а расширяет его.

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

1 ответ1

0

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

  • Чтобы обновить 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 символами, которые у вас есть сейчас.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .