Я нашел много вопросов, подобных этому, на 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% буквально, а расширяет его.
Есть ли возможность легко это сделать?
%FOO%
буквально, попробуйте набрать%%FOO%%
. Несколько связанное: Установка переменных среды и добавление к общесистемному% PATH% с помощью пакетного файла WindowsОтветы:
Это зависит от того, что вы пытаетесь сделать:
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 символами, которые у вас есть сейчас.
источник