Вопрос: Как добавить в переменную Windows PATH с помощью setx? Имея странные проблемы. Как добавить в переменную path


windows - Как добавить в переменную Windows PATH с помощью setx? Имея странные проблемы

Я хочу изменить переменную Windows PATH с помощью 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 поднял ошибку и не сказал "Success".

Я смог повторить это странное поведение несколько раз (к счастью, я сохранил исходное содержимое PATH).

В настоящий момент единственным надежным способом, который я знаю для добавления в PATH, является следующее:

  • echo PATH.

  • Скопируйте содержимое PATH в текстовый файл и вручную добавьте ;C:\Python27\;C:\Python27\Scripts\ в конец PATH.

  • Скопируйте все это из текстового файла.

  • setx PATH "<paste the string here>"

Этот процесс работает каждый раз как на Windows 7, так и на Windows 8.

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

Спасибо.

qaru.site

Добавление местоположений программ в переменную среды PATH

  • 04/21/2015
  • Время чтения: 2 мин

В этой статье

Дата последнего изменения: 9 марта 2015 г.

Применимо к: SharePoint Foundation 2010

В этой статье объясняется, как добавить определенные пути, критически важные для развертывания SharePoint Foundation, в переменную среды PATH компьютера разработчика.

Рекомендуемые пути

Рекомендуется добавить в переменную PATH следующие пути:

Добавляемый путь

Средства, находящиеся по добавляемому пути

C:\Program Files\Common Files\Microsoft Shared\web server extensions\14\BIN\

Несколько программ для разработки SharePoint Foundation, в том числе psconfig.exe, spmetal.exe и stsadm.exe.

C:\Program Files (x86) \Microsoft SDKs\Windows\v7.0A\Bin\x64\

Множество общих средств разработки, в том числе gacutil.exe, ildasm.exe, sn.exe, sqlmetal.exe и windiff.exe.

Действия для добавления пути в переменную среды PATH

  1. В меню Пуск щелкните правой кнопкой мыши пункт Компьютер.

  2. В контекстном меню выберите Свойства.

  3. В диалоговом окне Система выберите Дополнительные параметры системы.

  4. На вкладке Дополнительно диалогового окна Свойства системы нажмите кнопку Переменные среды.

  5. В поле Системные переменные диалогового окна Переменные среды прокрутите список до переменной Path, а затем выберите ее.

  6. Нажмите нижнюю из двух кнопок Изменить в этом диалоговом окне.

  7. В диалоговом окне Изменение системной переменной прокрутите строку в поле Значение переменной до конца и добавьте точку с запятой (;).

  8. Добавьте новый путь после точки с запятой.

  9. Нажмите кнопку ОК в трех последовательных диалоговых окнах, а затем закройте диалоговое окно Система.

Совет

Если среда Visual Studio открыта во время внесения изменений в системные переменные среды, изменения не будут обнаружены, пока среда не будет закрыта и открыта заново.

docs.microsoft.com

Как добавить пользовательские переменные среды в системную переменную PATH в Windows 7?

У меня есть две пользовательские переменные:

ANT_HOME установлен в   % USERPROFILE% \ Developer \ Tools \ Apache \ Apache   Ant \ apache-ant-1.8.2 JAVA_HOME установлен в   C: \ Program Files \ Java \ jdk1.6.0_23

И я хочу добавить эти пути к переменной System, чтобы я мог получить доступ к исполняемым файлам в папках bin. Я пытался

PATH установлен на [другой   пути];% ANT_HOME% \ Bin;% JAVA_HOME% \ Bin

Однако это не работает. Когда я открываю командную строку и echo% PATH% пользовательские переменные не расширены, Таким образом, путь показывает только литерал,% ANT_HOME% \ bin;% JAVA_HOME% \ bin

Кажется, я вспоминаю об этом, работая над моими старыми системами Windows XP. Как установить это в Windows 7?

ОБНОВЛЕНИЕ №2 - Теперь к фактический question: Почему вложенные, созданные пользователем переменные не могут расширяться?

Существуют некоторые общие проблемы с переменным расширением в Windows. Я уже столкнулся с той же проблемой и не обнаружил ясных, воспроизводимых обстоятельств - уровень рекурсии, при котором происходит сбой расширения, несовместим, специальные символы, похоже, не играют роли и т. Д.

Единственное жизнеспособное обходное решение, которое я нашел, - это добавление уровня рекурсии переменных по уровню рекурсии. Это означает: попробуйте удалить все переменные, которые вы хотите вложить друг в друга (включая вызовы от PATH к вашим пользовательским переменным), а затем запускать с нуля. Определите основные переменные (и т. Д. ANT-HOME), зафиксируйте, проверьте, если он расширен, если это так, продолжайте с фиксацией следующего уровня, проверьте ... вы получаете идею.

ОБНОВЛЕННЫЙ ОТВЕТ - Определение постоянных переменных среды с использованием CLI и GUI - Прокрутите вниз для исходного ответа

Метод графического интерфейса:

В Windows 7 просто введите «system» в META-Prompt, и вы увидите запись «Редактировать переменные системной среды». Оттуда щелкните «Переменные среды». Там вы можете либо изменить системную переменную PATH (нижний список), либо добавить / изменить новую переменную PATH для переменных пользовательской среды.

Метод командной строки:

Чтобы постоянно изменять переменные среды, вы должны использовать команду SETX в командной строке Windows. В отличие от других версий Windows, он встроен в Windows 7. Его синтаксис сильно отличается от SET, но он также мощный. Вы должны быть немного осторожны, но легко сделать беспорядок своих переменных с помощью SETX.

  • По умолчанию вы меняете пользовательские переменные, У вас может быть переменная пользовательской среды PATH, которая с радостью сосуществует с переменной PATH системы. Если вы еще не определили его, сделайте это, набрав: SETX PATH yourpath

  • Вы также можете добавить значение к системной переменной PATH. Для этого вам сначала нужно открыть командную строку с правами администратора. Чтобы сделать это, нажмите клавишу Meta (Windows), введите cmd и ударил CTRL+ SHIFT+ENTER и подтвердите диалог UAC.

Чтобы добавить новые значения в путь, вы можете ввести

setx path "%path%;yournewpath" /m

Важно следовать этому синтаксису! Если вы сначала не включите% path%, все существующие значения пути будут потеряны и заменены только вашим новым путем.  Переключатель / m в конце устанавливает переменную в системной среде.

Обратите внимание, что вам нужно будет открыть новую командную строку, чтобы использовать новую переменную.

Существует также полная ссылка для SETX на TechNet,

СТАРЫЙ ОТВЕТ Команда SET обновляет переменные только для продолжительности текущего сеанса командной строки.

Правильный синтаксис для добавления значения к переменной: set [variable] =% [variable]%; [new value] `

Обратите внимание, что слева от знака равенства вы должны опустить процентные знаки!

Источник: Ссылка на командную строку TechNet для Windows Server

Статья поддержки Microsoft от 2007 года - номер 329308 - описывает ошибку в Shell32.dll, которая является причиной этой проблемы. Решение состоит в том, чтобы добавить PATH в список переменных пользователя, который установлен в

%ANT_HOME%\bin;%JAVA_HOME%\bin

Это работало вокруг проблемы. Мне не нравится устанавливать его только для моего пользователя, но каким-то образом моя система представляет симптомы этой старой ошибки, и я пока не вижу другого лучшего ответа.

ityouth.ru

Как добавить Ruby в переменную PATH в Windows?

У меня установлен Ruby, но мне все равно нужно добавить его в переменную PATH. Я нашел что-то онлайн, чтобы вручную добавить его с помощью командной строки:

set PATH=C:\Ruby200-x64\bin;%PATH%

Но прежде чем я попробую, я хочу быть уверенным, что он не перезапишет то, что в настоящее время находится в переменной PATH. (У меня нет опыта в этом, поэтому я не знаю, чего ожидать).

Заранее спасибо за вашу помощь!

19

2017-11-15 15:31

источник

Ответы:

во-первых, обратите внимание, что этот вопрос не совсем о Ruby, а о том, как установить путь в Windows (он работает одинаково, если вы хотите добавить исполняемый файл, отличный от Ruby)

во-вторых, вы не перезаписываете переменную среды PATH, потому что вы добавляете существующий контент к новому, который вы устанавливаете:

set PATH=C:\Ruby200-x64\bin;%PATH%

%PATH% - текущее содержимое переменной PATH.

Рассмотрите возможность использования

set PATH=%PATH%;C:\Ruby200-x64\bin

вместо этого это приведет к тому, что ваша ОС будет искать исходный путь перед поиском в папке ruby ​​bin. Может быть, это немного отличается на современных компьютерах, но мои старые дни DOS утверждают, что второе решение лучше.

третьей и последней точки, в Windows вы можете установить переменные среды в свойствах панели управления / системы Как туда добраться зависит от версии вашей ОС, но если вы ищете переменные окружения и системные переменные, вы должны туда добраться.

22

2017-11-15 15:42

  1. На рабочем столе щелкните правой кнопкой мыши в самом нижнем левом углу экрана, чтобы получить меню задач.
  2. В меню «Задача» выберите «Система».
  3. Нажмите ссылку Дополнительные настройки системы в левом столбце.
  4. В окне «Свойства системы» перейдите на вкладку «Дополнительно», затем нажмите кнопку «Переменные среды» в нижней части этой вкладки.
  5. В окне «Переменные среды» (на рисунке ниже) выделите переменную «Путь» в разделе «Системные переменные» и нажмите кнопку «Изменить».
  6. Добавьте или измените линии пути с помощью путей, к которым вы хотите получить доступ. Для рубина это будет:

    ;YOUR_RUBY_INSTALLATION_PATH\bin;

Операция с set PATH=C:\Ruby200-x64\bin;%PATH% вероятно, только временно, пока вы не перезагрузите компьютер.

5

2017-11-15 15:40

Да, это правильно. В вашем примере %PATH% будет расширен до текущего значения переменной PATH, поэтому эта команда эффективно добавляет новую запись в начало PATH.

Обратите внимание, что вызов set PATH будет влиять только на текущую оболочку. Если вы хотите сделать это изменение постоянным для всех оболочек, самым простым вариантом является установка его как пользовательской переменной с помощью диалогового окна «Переменные среды».

В Windows 8 вы можете открыть это диалоговое окно, нажав Win + s и выполнив поиск «переменных среды». В более ранних версиях Windows вы можете щелкнуть правой кнопкой мыши «Мой компьютер», выбрать «Свойства», затем «Расширенные настройки системы», затем «Переменные среды». Вы можете создать (или обновить) переменную PATH в разделе пользовательских переменных и добавить все необходимые записи. Они будут добавлены к существующему системному пути. Если вы примете такой подход, вам нужно будет открыть новую оболочку cmd после обновления переменных.

1

2017-11-15 15:44

Я просто хотел, чтобы все знали, что когда вы устанавливаете rubyinstallerв Windows и следуйте его шагам, нет возможности «добавлять к переменным пути», потому что он автоматически добавляет его.

Rubyinstaller меня трогали, потому что он сказал gem не найден, когда я это сделал gem install sass сразу после установки.

Вероятно, ваша переменная пути уже установлена, если вы использовали rubyinstaller,

Хитрость заключается в том, чтобы открыть CMD, или я бы представил, PowerShell, ConemU и т. Д., Git bash и тип gem,

  1. Нажмите WINKEY  и тип cmd
  2. Тип gem install sass (или что-то еще, что находится в папке bin для Ruby)

Я просто добавил переменную PATH, и она уже была установлена, поэтому моя проблема была инструментом командной строки для мусора, который был открыт после установки rubyinstaller,

Вы также можете сделать эти шаги  для добавления к переменным PATH:

  1. Нажмите WINKEY
  2. Тип view advanced system settings
  3. Откройте это
  4. Нажмите Environment Variables
  5. Нажмите Path в списке
  6. Нажмите Edit
  7. Проверить, если C:\Ruby24-x64\bin уже есть, если так, сделано
  8. Нажмите New и введите C:\Ruby24-x64\bin
  9. Готово

1

2017-11-26 03:20

Не бойтесь ничего, что вы делаете, C:\Ruby200-x64\bin к существующим %PATH%, это то, что делает команда, которую вы опубликовали.

Путь - это список каталогов, разделенных ;, в котором система будет искать команду, которую вы выполняете.

В вашем случае это:

  1. C:\Ruby200-x64\bin
  2. %PATH%, если вы распечатаете его в командной строке, вы обнаружите, что это сам список каталогов, разделенных ;,

Если вы хотите, чтобы ваше изменение было постоянным, вы должны измените свой PATH sytemwide ,

0

2017-11-15 15:40

Для CLI, как указано в другом месте, вызов SET на переменную пути действует только в текущее окно и закрывает его или перезапускает окна с изменением.

Пример переходной версии, выбранной в качестве ответа:

set "PATH=%PATH%;C:\Ruby200-x64\bin"

Чтобы правильно установить путь в CLI, используйте команду path:

PATH %PATH%;C:\Ruby200-x64\bin

Это будет сохраняться между окнами CMD и после перезагрузки.

0

2018-02-22 21:08

programmerz.ru

Как добавить Ruby в переменную PATH в Windows?

У меня установлен Ruby, но мне все равно нужно добавить его в переменную PATH. Я нашел что-то онлайн, чтобы вручную добавить его с помощью командной строки:

set PATH=C:\Ruby200-x64\bin;%PATH%

Но прежде чем я попробую, я хочу быть уверенным, что он не перезапишет то, что в настоящее время находится в переменной PATH. (У меня нет опыта в этом, поэтому я не знаю, чего ожидать).

Заранее спасибо за вашу помощь!

19

2017-11-15 15:31

источник

Ответы:

во-первых, обратите внимание, что этот вопрос не совсем о Ruby, а о том, как установить путь в Windows (он работает одинаково, если вы хотите добавить исполняемый файл, отличный от Ruby)

во-вторых, вы не перезаписываете переменную среды PATH, потому что вы добавляете существующий контент к новому, который вы устанавливаете:

set PATH=C:\Ruby200-x64\bin;%PATH%

%PATH% - текущее содержимое переменной PATH.

Рассмотрите возможность использования

set PATH=%PATH%;C:\Ruby200-x64\bin

вместо этого это приведет к тому, что ваша ОС будет искать исходный путь перед поиском в папке ruby ​​bin. Может быть, это немного отличается на современных компьютерах, но мои старые дни DOS утверждают, что второе решение лучше.

третьей и последней точки, в Windows вы можете установить переменные среды в свойствах панели управления / системы Как туда добраться зависит от версии вашей ОС, но если вы ищете переменные окружения и системные переменные, вы должны туда добраться.

22

2017-11-15 15:42

  1. На рабочем столе щелкните правой кнопкой мыши в самом нижнем левом углу экрана, чтобы получить меню задач.
  2. В меню «Задача» выберите «Система».
  3. Нажмите ссылку Дополнительные настройки системы в левом столбце.
  4. В окне «Свойства системы» перейдите на вкладку «Дополнительно», затем нажмите кнопку «Переменные среды» в нижней части этой вкладки.
  5. В окне «Переменные среды» (на рисунке ниже) выделите переменную «Путь» в разделе «Системные переменные» и нажмите кнопку «Изменить».
  6. Добавьте или измените линии пути с помощью путей, к которым вы хотите получить доступ. Для рубина это будет:

    ;YOUR_RUBY_INSTALLATION_PATH\bin;

Операция с set PATH=C:\Ruby200-x64\bin;%PATH% вероятно, только временно, пока вы не перезагрузите компьютер.

5

2017-11-15 15:40

Да, это правильно. В вашем примере %PATH% будет расширен до текущего значения переменной PATH, поэтому эта команда эффективно добавляет новую запись в начало PATH.

Обратите внимание, что вызов set PATH будет влиять только на текущую оболочку. Если вы хотите сделать это изменение постоянным для всех оболочек, самым простым вариантом является установка его как пользовательской переменной с помощью диалогового окна «Переменные среды».

В Windows 8 вы можете открыть это диалоговое окно, нажав Win + s и выполнив поиск «переменных среды». В более ранних версиях Windows вы можете щелкнуть правой кнопкой мыши «Мой компьютер», выбрать «Свойства», затем «Расширенные настройки системы», затем «Переменные среды». Вы можете создать (или обновить) переменную PATH в разделе пользовательских переменных и добавить все необходимые записи. Они будут добавлены к существующему системному пути. Если вы примете такой подход, вам нужно будет открыть новую оболочку cmd после обновления переменных.

1

2017-11-15 15:44

Я просто хотел, чтобы все знали, что когда вы устанавливаете rubyinstallerв Windows и следуйте его шагам, нет возможности «добавлять к переменным пути», потому что он автоматически добавляет его.

Rubyinstaller меня трогали, потому что он сказал gem не найден, когда я это сделал gem install sass сразу после установки.

Вероятно, ваша переменная пути уже установлена, если вы использовали rubyinstaller,

Хитрость заключается в том, чтобы открыть CMD, или я бы представил, PowerShell, ConemU и т. Д., Git bash и тип gem,

  1. Нажмите WINKEY  и тип cmd
  2. Тип gem install sass (или что-то еще, что находится в папке bin для Ruby)

Я просто добавил переменную PATH, и она уже была установлена, поэтому моя проблема была инструментом командной строки для мусора, который был открыт после установки rubyinstaller,

Вы также можете сделать эти шаги  для добавления к переменным PATH:

  1. Нажмите WINKEY
  2. Тип view advanced system settings
  3. Откройте это
  4. Нажмите Environment Variables
  5. Нажмите Path в списке
  6. Нажмите Edit
  7. Проверить, если C:\Ruby24-x64\bin уже есть, если так, сделано
  8. Нажмите New и введите C:\Ruby24-x64\bin
  9. Готово

1

2017-11-26 03:20

Не бойтесь ничего, что вы делаете, C:\Ruby200-x64\bin к существующим %PATH%, это то, что делает команда, которую вы опубликовали.

Путь - это список каталогов, разделенных ;, в котором система будет искать команду, которую вы выполняете.

В вашем случае это:

  1. C:\Ruby200-x64\bin
  2. %PATH%, если вы распечатаете его в командной строке, вы обнаружите, что это сам список каталогов, разделенных ;,

Если вы хотите, чтобы ваше изменение было постоянным, вы должны измените свой PATH sytemwide ,

0

2017-11-15 15:40

Для CLI, как указано в другом месте, вызов SET на переменную пути действует только в текущее окно и закрывает его или перезапускает окна с изменением.

Пример переходной версии, выбранной в качестве ответа:

set "PATH=%PATH%;C:\Ruby200-x64\bin"

Чтобы правильно установить путь в CLI, используйте команду path:

PATH %PATH%;C:\Ruby200-x64\bin

Это будет сохраняться между окнами CMD и после перезагрузки.

0

2018-02-22 21:08

programmerz.ru

Как добавить в переменную Windows PATH с помощью setx? Имея странные проблемы

Я хочу изменить переменную Windows PATH, используя setx, В Windows 8 работает не менее 50% времени:

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, следующий:

  1. echo путь.

  2. Скопируйте содержимое PATH в текстовый файл и вручную добавьте ;C:\Python27\;C:\Python27\Scripts\ до конца PATH.

  3. Скопируйте все это из текстового файла.

  4. setx PATH "<paste the string here>"

Этот процесс работает каждый раз как на Windows 7, так и на Windows 8.

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

Спасибо.

48

2017-10-10 04:56

источник

Ответы:

Бег cmd как администратор, тогда:

setx /M PATH "%PATH%;<your-new-path>"

Параметр / M задает переменную в области SYSTEM. Поведение по умолчанию - установить его для ПОЛЬЗОВАТЕЛЯ.

TL; DR

Проблема усечения происходит, потому что, когда вы эхо-% PATH%, он покажет конкатенацию значений SYSTEM и USER. Поэтому, когда вы добавите его в свой второй аргумент в setx, он будет соответствовать значениям SYSTEM и USER внутри USER var. Когда вы снова эхом, все будет удвоено.

Кроме того, для параметра / M требуется привилегия администратора, поэтому вам нужно открыть свой терминал с «запустить как администратор», иначе setx будет жаловаться на «доступ к пути к реестру запрещен».

Последнее, что нужно отметить: вы не увидите новое значение, когда вы эхо-% PATH% сразу после его настройки, вам нужно закрыть cmd и снова открыть.

Если вы хотите проверить фактические значения, хранящиеся в проверке реестра этот вопрос ,

53

2017-11-15 15:02

Это прекрасно работает:

for /f "usebackq tokens=2,*" %A in (`reg query HKCU\Environment /v PATH`) do set my_user_path=%B setx PATH "C:\Python27;C:\Python27\Scripts;%my_user_path%"

Первая команда получает переменную окружения USER 'PATH', в переменную 'my_user_path' Вторая строка добавляет 'C: \ Python27; C: \ Python27 \ Scripts;' к переменной среды USER «PATH»

5

2017-08-08 11:15

Если вы не обязаны setx, вы можете использовать альтернативный инструмент командной строки, например pathed , Существует более полный список альтернативных редакторов PATH на https://superuser.com/questions/297947/is-there-a-convenient-way-to-edit-path-in-windows-7/655712#655712

Вы также можете редактировать значение реестра напрямую, что и есть setxделает. Больше в этом ответ ,

Странно, что ваш %PATH% обрезается с 1024 символами. я думал setx не было этой проблемы. Хотя вы, вероятно, должны очистить недопустимые записи пути.

3

2017-10-10 05:09

Я столкнулся с теми же проблемами и нашел удобное решение.

Использование pathman.

pathman /as %M2%

Добавляет, например,% M2% к системному пути. Не больше, не меньше. Больше проблем не возникает, когда получается смесь пользователей PATH и системы PATH. Больше не пытайтесь получить правильные значения из реестра ...

Пробовал в Windows 10

3

2017-12-14 07:52

Без прав администратора единственным способом, который работал для меня, был файл bat, содержащий следующий код:

for /F "tokens=2* delims= " %%f IN ('reg query HKCU\Environment /v PATH ^| findstr /i path') do set OLD_SYSTEM_PATH=%%g setx PATH "%USERPROFILE%\wev-tools;%OLD_SYSTEM_PATH%"

Код представляет собой комбинацию ответов https://stackoverflow.com/a/45566845/4717152  а также https://stackoverflow.com/a/10292113/4717152

1

2017-07-18 10:59

У меня возникли проблемы с управлением моими компьютерными лабораториями, когда переменная окружения% PATH% приблизилась к 1024 символам, и я написал сценарий Powershell для ее исправления.

Вы можете скачать код здесь: https://gallery.technet.microsoft.com/scriptcenter/Edit-and-shorten-PATH-37ef3189

Вы также можете использовать его как простой способ безопасного добавления, удаления и анализа записей PATH. Наслаждаться.

0

2017-11-20 02:46

Шаги: 1.  Откройте командную строку с правами администратора.

Шаги: 2.  Выполните команду:      setx / M PATH "путь \ to;% PATH%"

[Примечание. Обязательно измените команду, чтобы путь \ отображал путь к папке из вашего корня.]

пример  : setx / M PATH "C: \ Program Files;% PATH%"

-1

2018-05-29 16:12

Если кто-то хочет запустить его в PowerShell, он работает, как показано ниже,

Запуск Powershell в качестве администратора

затем

setx /M PATH "$Env:PATH;<path to add>"

Чтобы проверить, откройте еще один Powershell и просмотрите PATH, как показано ниже,

$Env:PATH

-1

2017-10-11 03:21

programmerz.ru

Как добавить в переменную Windows PATH с помощью setx? Имея странные проблемы

Я хочу изменить переменную Windows PATH, используя setx, В Windows 8 работает не менее 50% времени:

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, следующий:

  1. echo путь.

  2. Скопируйте содержимое PATH в текстовый файл и вручную добавьте ;C:\Python27\;C:\Python27\Scripts\ до конца PATH.

  3. Скопируйте все это из текстового файла.

  4. setx PATH "<paste the string here>"

Этот процесс работает каждый раз как на Windows 7, так и на Windows 8.

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

Спасибо.

48

2017-10-10 04:56

источник

Ответы:

Бег cmd как администратор, тогда:

setx /M PATH "%PATH%;<your-new-path>"

Параметр / M задает переменную в области SYSTEM. Поведение по умолчанию - установить его для ПОЛЬЗОВАТЕЛЯ.

TL; DR

Проблема усечения происходит, потому что, когда вы эхо-% PATH%, он покажет конкатенацию значений SYSTEM и USER. Поэтому, когда вы добавите его в свой второй аргумент в setx, он будет соответствовать значениям SYSTEM и USER внутри USER var. Когда вы снова эхом, все будет удвоено.

Кроме того, для параметра / M требуется привилегия администратора, поэтому вам нужно открыть свой терминал с «запустить как администратор», иначе setx будет жаловаться на «доступ к пути к реестру запрещен».

Последнее, что нужно отметить: вы не увидите новое значение, когда вы эхо-% PATH% сразу после его настройки, вам нужно закрыть cmd и снова открыть.

Если вы хотите проверить фактические значения, хранящиеся в проверке реестра этот вопрос ,

53

2017-11-15 15:02

Это прекрасно работает:

for /f "usebackq tokens=2,*" %A in (`reg query HKCU\Environment /v PATH`) do set my_user_path=%B setx PATH "C:\Python27;C:\Python27\Scripts;%my_user_path%"

Первая команда получает переменную окружения USER 'PATH', в переменную 'my_user_path' Вторая строка добавляет 'C: \ Python27; C: \ Python27 \ Scripts;' к переменной среды USER «PATH»

5

2017-08-08 11:15

Если вы не обязаны setx, вы можете использовать альтернативный инструмент командной строки, например pathed , Существует более полный список альтернативных редакторов PATH на https://superuser.com/questions/297947/is-there-a-convenient-way-to-edit-path-in-windows-7/655712#655712

Вы также можете редактировать значение реестра напрямую, что и есть setxделает. Больше в этом ответ ,

Странно, что ваш %PATH% обрезается с 1024 символами. я думал setx не было этой проблемы. Хотя вы, вероятно, должны очистить недопустимые записи пути.

3

2017-10-10 05:09

Я столкнулся с теми же проблемами и нашел удобное решение.

Использование pathman.

pathman /as %M2%

Добавляет, например,% M2% к системному пути. Не больше, не меньше. Больше проблем не возникает, когда получается смесь пользователей PATH и системы PATH. Больше не пытайтесь получить правильные значения из реестра ...

Пробовал в Windows 10

3

2017-12-14 07:52

Без прав администратора единственным способом, который работал для меня, был файл bat, содержащий следующий код:

for /F "tokens=2* delims= " %%f IN ('reg query HKCU\Environment /v PATH ^| findstr /i path') do set OLD_SYSTEM_PATH=%%g setx PATH "%USERPROFILE%\wev-tools;%OLD_SYSTEM_PATH%"

Код представляет собой комбинацию ответов https://stackoverflow.com/a/45566845/4717152  а также https://stackoverflow.com/a/10292113/4717152

1

2017-07-18 10:59

У меня возникли проблемы с управлением моими компьютерными лабораториями, когда переменная окружения% PATH% приблизилась к 1024 символам, и я написал сценарий Powershell для ее исправления.

Вы можете скачать код здесь: https://gallery.technet.microsoft.com/scriptcenter/Edit-and-shorten-PATH-37ef3189

Вы также можете использовать его как простой способ безопасного добавления, удаления и анализа записей PATH. Наслаждаться.

0

2017-11-20 02:46

Шаги: 1.  Откройте командную строку с правами администратора.

Шаги: 2.  Выполните команду:      setx / M PATH "путь \ to;% PATH%"

[Примечание. Обязательно измените команду, чтобы путь \ отображал путь к папке из вашего корня.]

пример  : setx / M PATH "C: \ Program Files;% PATH%"

-1

2018-05-29 16:12

Если кто-то хочет запустить его в PowerShell, он работает, как показано ниже,

Запуск Powershell в качестве администратора

затем

setx /M PATH "$Env:PATH;<path to add>"

Чтобы проверить, откройте еще один Powershell и просмотрите PATH, как показано ниже,

$Env:PATH

-1

2017-10-11 03:21

programmerz.ru