Как добавить переменную 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.

Я действительно должен быть в состоянии сделать это в одной команде. Что я делаю неправильно?

Спасибо.

Ответы на вопрос(8)

Ваш ответ на вопрос