Как добавить переменную PATH в Windows с помощью setx? Иметь странные проблемы
Я хочу изменить переменную PATH Windows, используяsetx
, Следующее работает как минимум 50% времени в Windows 8:
setx PATH %PATH%;C:\Python27\;C:\Python27\Scripts\
Если он выдает ошибку «аргумент по умолчанию может использоваться только 2 раза», то иногда работает следующее:
setx PATH "%PATH%;C:\Python27\;C:\Python27\Scripts\"
Разница в том, что мы заключили второй аргумент в кавычки. Я считаю, что цитаты необходимы, когда%PATH%
расширяется, чтобы включить пробелы.
Тем не менее, я столкнулся с некоторыми странными проблемами в Windows 7. На одной конкретной машине Windows 7 у меня была эта проблема:
echo %PATH%
Это печатает:
C:\Foo\;C:\Bar\;[...lots of stuff...]C:\Baz\
Тогда я делаю это:
setx PATH "%PATH%;C:\Quux\"
Затем он говорит: «Ошибка: усечено до 1024 символов». Теперь давайте проверим, что содержит PATH:
echo %PATH%
Это печатает:
C:\Foo\;C:\Foo\;C:\Bar\;C:\Bar\;[...lots of stuff, now duplicated...]C:\B
... и он отрезан в 1024 символа. Он переехал из-за дубликатов. Также интересно: значение PATH меняется несмотря на то, чтоsetx
поднял ошибку и не сказал «Успех».
Мне удалось повторить это странное поведение несколько раз (к счастью, я сохранил оригинальное содержимое PATH).
На данный момент единственный верный способ добавления в PATH, который я знаю, заключается в следующем:
echo
тропинка.
Скопируйте содержимое PATH в текстовый файл и вручную добавьте;C:\Python27\;C:\Python27\Scripts\
до конца пути.
Скопируйте все это из текстового файла.
setx PATH "<paste the string here>"
Этот процесс работает каждый раз как в Windows 7, так и в Windows 8.
Я действительно должен быть в состоянии сделать это в одной команде. Что я делаю неправильно?
Спасибо.