Windows set path: How to set the path and environment variables in Windows

Командная строка

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

спросил

Изменено
7 месяцев назад

Просмотрено
2,0 м раз

Я пытаюсь добавить C:\xampp\php в переменную среды PATH моей системы в Windows.

Я уже добавил его с помощью диалогового окна Переменные среды .

Но когда я ввожу в консоль:

 C:\>путь
 

не показывает новый каталог C:\xampp\php :

 PATH=D:\Program Files\Autodesk\Maya2008\bin;C:\Ruby192\bin;C:\WINDOWS\system32;C :\ВИНДОУС;
C:\WINDOWS\System32\Wbem;C:\PROGRA~1\DISKEE~2\DISKEE~1\;c:\Program Files\Microsoft SQL
Сервер\90\Tools\binn\;C:\Program Files\QuickTime\QTSystem\;D:\Program Files\TortoiseSVN\bin
;D:\Program Files\Bazaar;C:\Program Files\Android\android-sdk\tools;D:\Program Files\
Microsoft Visual Studio\Common\Tools\WinNT;D:\Program Files\Microsoft Visual Studio\Common
\MSDev98\Bin;D:\Program Files\Microsoft Visual Studio\Common\Tools;D:\Program Files\
Microsoft Visual Studio\VC98\bin
 

У меня два вопроса:

  1. Почему это произошло? Я что-то сделал не так?
  2. Кроме того, как добавить каталоги в мою переменную PATH с помощью консоли (и программно, с помощью пакетного файла)?
  • окна
  • командная строка
  • путь
  • переменные окружения

8

После изменения PATH с помощью графического интерфейса закройте и снова откройте окно консоли.

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

Этот параметр влияет только на текущий сеанс оболочки, а не на всю систему. Выполните эту команду в открытом командном окне:

 set PATH=%PATH%;C:\your\path\here\
 

Эта команда добавляет C:\your\path\here\ к текущему PATH . Если ваш путь включает пробелы, вам НЕ нужно включать кавычки.

Разбивка:

  • set — команда, которая изменяет переменные окружения cmd только для текущего сеанса cmd ; другие программы и система остаются незатронутыми.
  • PATH= — означает, что PATH — это переменная среды, которую необходимо временно изменить.
  • %PATH%;C:\your\path\here\ — Часть %PATH% расширяется до текущего значения PATH и ;C:\your\path\here\ 9Затем к нему присоединяется 0012. Это становится новым PATH .

12

ПРЕДУПРЕЖДЕНИЕ: Это решение может быть разрушительным для вашего PATH и стабильности вашей системы. В качестве побочного эффекта он объединит ваш пользовательский и системный PATH и урежет PATH до 1024 символов. Эффект этой команды необратим. Сначала сделайте резервную копию PATH. См. комментарии для получения дополнительной информации.

Не копируйте и не вставляйте это вслепую. Используйте с осторожностью.

Вы можете навсегда добавить путь к PATH с помощью команды setx :

 setx /M path "%path%;C:\your\path\here\"
 

Снимите флаг /M , если вы хотите установить пользовательский ПУТЬ вместо системного ПУТЬ .

Примечания:

  • Команда setx доступна только в Windows 7 и более поздних версиях.
  • Эту команду следует запускать из командной строки с повышенными привилегиями.

  • Если вы хотите изменить его только для текущего сеанса, используйте set.

15

Это только изменяет реестр. Существующий процесс не будет использовать эти значения. Новый процесс будет делать это, если он запущен после , это изменение и не наследует старую среду от своего родителя.

Вы не указали способ запуска сеанса консоли. Лучший способ убедиться в этом — выйти из командной оболочки и запустить ее снова. Затем он должен наследовать обновленную переменную среды PATH.

6

Вам не нужны команды set или setx . Просто откройте терминал и введите:

 ПУТЬ
 

Показывает текущее значение переменной PATH. Теперь вы хотите добавить к нему каталог? Просто введите:

 ПУТЬ %PATH%;C:\xampp\php
 

Если по какой-либо причине вы хотите очистить переменную PATH (полностью удалить пути или удалить все пути в ней), введите:

 PATH ;
 

Update

Как отметил Даниал Уилсон в комментарии ниже, он устанавливает путь только в текущем сеансе. Чтобы установить путь на постоянной основе, используйте setx , но имейте в виду, что хотя это устанавливает постоянный путь, но , а не в текущем сеансе, поэтому вам нужно запустить новую командную строку, чтобы увидеть изменения. Дополнительная информация здесь.

Чтобы проверить, существует ли переменная среды или увидеть ее значение, используйте команду ECHO:

 echo %YOUR_ENV_VARIABLE%
 

6

Вместо этого я бы использовал PowerShell!

Чтобы добавить каталог в PATH с помощью PowerShell, выполните следующие действия:

 $PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
[Среда]::SetEnvironmentVariable("ПУТЬ", "$ПУТЬ;$xampp_path")
 

Чтобы установить переменную для всех пользователей на всей машине, последняя строка должна выглядеть так:

 [Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
 

В сценарии PowerShell вы можете проверить наличие вашего C:\xampp\php перед добавлением в PATH (если он был добавлен ранее). Вы можете обернуть его в , если условно.

Итак, собираем все вместе:

 $PATH = [Environment]::GetEnvironmentVariable("PATH", "Machine")
$xampp_path = "C:\xampp\php"
если($PATH-не нравится "*"+$xampp_path+"*" ){
    [Среда]::SetEnvironmentVariable("ПУТЬ", "$ПУТЬ;$xampp_path", "Машина")
}
 

Более того, можно создать общую функцию. Просто укажите каталог, который вы хотите добавить:

 function AddTo-Path{
параметр(
    [строка]$Dir
)
    if( !(Тестовый путь $Dir)){
        Пишет-предупреждение "Предоставленный каталог не найден!"
        возвращаться
    }
    $PATH = [Среда]::GetEnvironmentVariable("ПУТЬ", "Машина")
    если($PATH-не нравится "*"+$Dir+"*" ){
        [Среда]::SetEnvironmentVariable("ПУТЬ", "$ПУТЬ;$Каталог", "Машина")
    }
}
 

Вы могли бы улучшить ситуацию, немного отполировав ее. Например, используя Test-Path , чтобы убедиться, что ваш каталог действительно существует.

4

Кивок всем комментариям к первоначальному ответу @Nafscript SETX .

  • SETX по умолчанию обновит путь пользователя .
  • SETX ... /M обновит ваш системный путь .
  • %PATH% содержит системный путь с добавленным путем пользователя

Предупреждения

  1. Сделайте резервную копию вашего PATH - SETX обрежет ваш мусор длиннее 1024 символов
  2. Не звонить SETX %PATH%;xxx — добавляет системный путь в путь пользователя
  3. Не звонить SETX %PATH%;xxx /M - добавляет путь пользователя в системный путь
  4. Чрезмерное использование командного файла может привести к слепоте 1

На странице ss64 SETX есть несколько очень хороших примеров. Важно отметить, что он указывает, где находятся ключи реестра для SETX по сравнению с SETX/M

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

HKCU\Окружающая среда

Системные переменные:

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Инструкции по использованию

Добавление к пользователю

ПУТЬ

append_user_path. cmd

 @ECHO OFF
Использование REM: append_user_path "путь"
УСТАНОВИТЕ ключ = "HKCU\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ЭХО %CurrPath% > user_path_bak.txt
НАСТРОЙКА ПУТИ "%CurrPath%";%1
 

Добавить к системе

ПУТЬ

append_system_path.cmd . Необходимо запускать от имени администратора.

(Это в основном то же самое, за исключением другого Key и модификатора SETX /M .)

 @ECHO OFF
Использование REM: append_system_path "путь"
SET Key = "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ЭХО %CurrPath% > system_path_bak.txt
ПУТЬ SETX "%CurrPath%";%1 /M
 

Альтернативы

Наконец, есть потенциально улучшенная версия под названием SETENV, рекомендованная на странице ss64 SETX, которая разделяет настройку пользовательских или системных переменных среды.


Вот полный пример, который работает в Windows 7 для установки переменной среды PATH для всей системы. В примере определяется, было ли программное обеспечение уже добавлено в PATH перед попыткой изменить значение. Есть ряд незначительных технических отличий от приведенных выше примеров:

 @эхо выключено
установить СОБСТВЕННЫЙ ПУТЬ=%~dp0
установить ПЛАТФОРМА=mswin
если определены ProgramFiles(x86) установите PLATFORM=win64
если "%PROCESSOR_ARCHITECTURE%"=="AMD64" установите PLATFORM=win64
если существует "%OWNPATH%tex\texmf-mswin\bin\context.exe", установите PLATFORM=mswin
если существует "%OWNPATH%tex\texmf-win64\bin\context.exe", установите PLATFORM=win64
rem Проверить, был ли ранее обновлен PATH
эхо% ПУТЬ% | findstr "texmf-%PLATFORM%" > ноль
rem Обновляйте только PATH, если он ранее не обновлялся
если ОШИБКА 1 (
  установить ключ = "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment"
  for /F "USEBACKQ tokens=2*" %%A in (`reg query %%Key%% /v PATH`) do (
    если не "%%~B" == "" (
      rem Сохранить существующий PATH
      эхо %%B > currpath. txt
      rem Обновить текущую сессию
      установить PATH=%PATH%;%OWNPATH%tex\texmf-%PLATFORM%\bin
      
      rem Сохранить переменную окружения PATH
      setx ПУТЬ "%%B;%OWNPATH%tex\texmf-%PLATFORM%\bin" /M
    )
  )
)
 

1. Не совсем верно

0

Удобно, если вы уже находитесь в каталоге, который хотите добавить в PATH:

 set PATH=%PATH%;%CD%
 

Работает со стандартной командной строкой Windows, но не в PowerShell.

Для PowerShell эквивалентом %CD% является [System.Environment]::CurrentDirectory .

2

Помимо всех ответов, если вам нужен удобный инструмент с графическим интерфейсом для редактирования переменных среды Windows, вы можете использовать Rapid Environment Editor.

Попробуй! Это безопасно в использовании и потрясающе!

1

  • Изменения командной строки не будут постоянными и будут потеряны при закрытии консоли.
  • Путь работает по принципу «первым пришел, первым обслужен».
  • Возможно, вы захотите переопределить другие уже включенные исполняемые файлы. Например, если у вас уже есть другая версия на вашем пути, и вы хотите добавить другую версию, не внося постоянных изменений в путь, вы должны указать каталог в начале команды.

Для переопределения уже включенных исполняемых файлов;

установить PATH=C:\xampp\php;%PATH%;

Используйте путь из gtools.

Он работает интуитивно. Например:

 pathed /REMOVE "c:\my\folder"
pathed /APPEND "c:\моя\папка"
 

Показывает результаты без необходимости создавать новый cmd !

1

Относительно точки 2 Я использую простой пакетный файл, который заполняется PATH или другие переменные среды для меня. Поэтому по умолчанию нет загрязнения переменных окружения. Этот пакетный файл доступен отовсюду, поэтому я могу ввести:

 c:\>mybatchfile
-- здесь все окр. доступны
c:\>php файл.php
 

3

Проверка приведенных выше предложений в Windows 10 LTSB и беглый взгляд на контуры «помощи» (которые можно просмотреть, набрав «команда /?» в cmd), привели меня к
вывод, что команда PATH изменяет значения пути системной переменной среды только для текущего сеанса, но после перезагрузки все значения сбрасываются до значений по умолчанию — так же, как они были до использования команды PATH.

С другой стороны, использование команды SETX с правами администратора намного мощнее. Он изменяет эти значения навсегда (или, по крайней мере, до следующего использования этой команды или до тех пор, пока эти значения не будут обработаны вручную с помощью графического интерфейса...).

Лучшее использование синтаксиса SETX, которое сработало для меня:

 SETX PATH "%PATH%;C:\path\to\where\the\command\resides"
 

, где следует избегать любого знака равенства '=', и не беспокойтесь о пробелах! Больше не нужно вставлять кавычки для пути, который содержит пробелы внутри — знак разделения ';' делает работу.

Ключевое слово PATH, следующее за SETX, определяет, какой набор значений должен быть изменен среди возможных значений переменных среды системы, а %PATH% (слово PATH, заключенное в знак процента) в кавычках сообщает ОС чтобы оставить существующие значения PATH такими, какие они есть, и добавить следующий путь (тот, который следует за знаком разделения ';') к существующим значениям.

1

Если запустить команду cmd , он обновит все системные переменные для этого командного окна.

1

В командной строке вы указываете Cmd использовать командную строку Проводника Windows, указав перед ней start .

Итак, запустите Yourbatchname .

Обратите внимание, что вы должны зарегистрироваться, как если бы его имя было batchfile.exe .

Программы и документы могут быть добавлены в реестр, поэтому ввод их имени без пути в диалоговом окне «Пуск» — «Выполнить» или в ярлыке позволяет Windows найти их.

Это общий reg-файл. Скопируйте приведенные ниже строки в новый текстовый документ и сохраните его как anyname.reg. Отредактируйте его с помощью ваших программ или документов.

В путях используйте \ для разделения имен папок в путях ключей, так как regedit использует один \ для разделения имен своих ключей. Все reg-файлы начинаются с REGEDIT4. Точка с запятой превращает строку в комментарий. Символ @ означает присвоение значения ключу, а не именованному значению.

Файл не должен существовать. Это можно использовать для того, чтобы Word.exe открывал Winword.exe.

Ввод start batchfile запустит iexplore.exe.

 РЕГЕДИТ4
;Название, выделенное ниже жирным шрифтом, — это имя документа или программы, <имя файла>.<расширение файла>
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\Batchfile.exe]
; Знак @ означает, что пути к файлу присвоено значение по умолчанию для ключа.
; Весь путь заключен в кавычки ". 
@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\""
; Дополнительные параметры. Точка с запятой означает, что строка не обрабатывается. Удалите его, если вы хотите поместить его в реестр.
; Сообщает оболочке, что программа принимает URL-адреса.
;"useURL"="1"
; Устанавливает путь, который программа будет использовать в качестве своего каталога по умолчанию. Это закомментировано.
;"Путь"="C:\\Program Files\\Microsoft Office\\Office\\"
 

Вам уже говорили о пути в другом ответе. Также см. doskey /? для макросов cmd (работают только при вводе).

Вы можете запускать команды запуска для CMD. Из Технического справочника Windows Resource Kit

AutoRun

 HKCU\Software\Microsoft\Command Processor
Тип данных Диапазон Значение по умолчанию
REG_SZ список команд Для этой записи нет значения по умолчанию.
 

Описание

Содержит команды, которые выполняются при каждом запуске Cmd.exe.

Лучшей альтернативой панели управления является использование этой бесплатной программы от SourceForge под названием Pathenator.

Однако он работает только в системе с .NET 4.0 или более поздней версии, такой как Windows 7, Windows 8 или Windows 10.

0

Как бы тривиально это ни было, мне пришлось перезапустить Windows , когда я столкнулся с этой проблемой.

У меня Windows 7 x64. Я вручную обновил системную переменную PATH. Это работало нормально, если я запускал cmd.exe из меню статистики. Но если я наберу «cmd» в адресной строке Windows Explorer, он, кажется, загрузит PATH из другого места, в котором нет моих ручных изменений.

(Во избежание сомнений - да, я закрывал и перезапускал cmd пару раз перед перезагрузкой, и это не помогло.)

3

Приведенное ниже решение сработало отлично

попробуйте команду ниже в терминале Windows.

C:>setx PATH "C:\myfolder;%PATH%"

УСПЕХ: Указанное значение сохранено.

вы можете найти больше здесь

  1. В то время я установил PHP. Извлечено php-7***.zip в C:\php\
  2. Сделайте резервную копию моей текущей переменной среды PATH: запустите cmd и выполните команду: path >C:\path-backup.txt

  3. Получить текущее значение пути в файл C:\path.txt (таким же образом)

  4. Изменить path.txt (конечно, длина моего пути больше 1024 символов, Windows работает несколько лет)
    • Я удалил дубликаты путей, например 'C:\Windows; или C:\Windows\System32; или C:\Windows\System32\Wbem; - У меня два раза.
    • Также удалить пути к неустановленным программам. Пример: C:\Program Files\NonExistSoftware;
    • Таким образом, длина строки моего пути < 1024 :)))
    • в конце строки пути добавить ;C:\php\
    • Скопировать значение пути только в буфер с двойными кавычками! Пример: "C:\Windows;****;C:\php\" Там не должно быть PATH= !!!
  5. Откройте Windows PowerShell от имени администратора.
  6. Команда запуска:

setx path "Здесь вы должны вставить строку из буфера (новое значение пути)"

  1. Перезапустите ваш терминал (я использую "Far manager") и проверьте:
    php -v

Используйте эти команды в оболочке bash в Windows, чтобы добавить новое местоположение к переменной PATH

 PATH=$PATH:/path/to/mydir
 

или добавьте это местоположение

 PATH=/path/to/mydir:$PATH
 

В вашем случае, например, сделайте

 ПУТЬ=$ПУТЬ:C:\xampp\php
 

Вы можете повторить $PATH , чтобы увидеть переменную PATH в оболочке

Как открыть

Окно переменных среды из cmd.exe/Выполнить... ОАК

  • rundll32 sysdm.cpl,EditEnvironmentVariables прямой, может вызвать UAC
  • Через Можно ли запустить инструмент переменных среды в Windows напрямую? на serverfault.com.

    Как открыть

    Окно переменных среды из Проводника

    1. Щелкните правой кнопкой мыши «Этот компьютер»
    2. Нажмите "Свойства"
    3. На левой панели всплывающего окна нажмите «Дополнительные параметры системы»
    4. Нажмите на вкладку «Дополнительно»
    5. Нажмите кнопку «Переменные среды» в нижней части окна

    Вы также можете искать Variables в StartMenu Search.

    Справочные изображения, как

    Окно переменных среды выглядит так:

    Windows 10

    через

    Windows 7

    через

    Windows XP

    через

    В Windows 10 я смог найти установить переменную среды пути и получил следующие инструкции:

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

    C:\Program Files;C:\Winnt;C:\Winnt\System32

    В первый раз, когда я его искал, он сразу же открыл окно свойств системы. После этого я нашел приведенную выше инструкцию.

    Как добавить папку в переменную среды «Путь» в Windows 10 (со скриншотами)

    спросил

    Изменено
    17 дней назад

    Просмотрено
    112 тысяч раз

    В StackOverflow и в сети в целом есть устаревшие и мало руководств о том, как добавить конкретную папку в переменную среды Windows 10 Path пользователя.

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

    • путь
    • windows-10
    • переменные среды

    В приведенном ниже руководстве мы хотим добавить пример утилиты с именем mytool.exe , которая находится в C:\Users\NewFolderInPath 90\mytool.exe 90\012.exe , так что каждый раз, когда я хочу запустить утилиту mytool, мне не нужно указывать полный путь.

    Я использовал это в качестве примера, вы можете заменить папку чем-то более реалистичным, например, каталогом bin JDK, расположенным здесь C:\Program Files\Java\{JDK_VERSION}\bin для выполнения javac , keytool или все, что вы хотите.

    Шаг 1 - Щелкните значок Windows

    Шаг 2 - Щелкните значок Настройки

    Шаг 3 - Нажмите на Система

    Шаг 4 - Нажмите О программе

    Шаг 5 - Нажмите Информация о системе

    Шаг 6 - Нажмите Дополнительные параметры системы

    Шаг 7 - Щелкните Переменные среды. ..

    Шаг 8 - Выберите строку Путь и нажмите Редактировать

    Шаг 9 - Нажмите Новый , а затем нажмите Browse , затем в следующей панели, которая откроется, вам нужно выбрать нужную папку в Path . Для первоначальной предпосылки этого руководства я добавлю папку C:\Users\NewFolderInPath

    Шаг 10 - Щелкните OK и нажимайте каждую кнопку OK , с которой вы столкнетесь, чтобы закрыть все предыдущие окна.

    Шаг 11 - Откройте командная строка (cmd) и теперь вы можете запускать свою утилиту без указания полного пути.

    3

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

    C:\> echo %PATH:;=&echo.