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

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

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

Но когда я набираю в консоли:

C:\>path

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

PATH=D:\Program Files\Autodesk\Maya2008\bin;C:\Ruby192\bin;C:\WINDOWS\system32;C:\WINDOWS;
C:\WINDOWS\System32\Wbem;C:\PROGRA~1\DISKEE~2\DISKEE~1\;c:\Program Files\Microsoft SQL
Server\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 с помощью консоли (и программно, с помощью пакетного файла)?
Комментарии к вопросу (4)

Вариант 1

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

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

Вариант 2

Выполните эту команду в открытом командном окне:

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\. Это становится новым PATH.
Комментарии (11)

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

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

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

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

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

Примечания:

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

  • Вы должны выполнять эту команду из поднятой командной строки.

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

Комментарии (11)
Решение

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

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

Комментарии (6)

Вы Don'т необходимости каких-либо установить или setx команду, просто откройте терминал и введите:

PATH

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

PATH %PATH%;C:\xampp\php

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

PATH ;

Обновление

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

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

echo %YOUR_ENV_VARIABLE%
Комментарии (6)

Я бы использовать PowerShell вместо!

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

$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
[Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path")

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

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

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

Так соберем все вместе:

$PATH = [Environment]::GetEnvironmentVariable("PATH")
$xampp_path = "C:\xampp\php"
if( $PATH -notlike "*"+$xampp_path+"*" ){
    [Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine")
}

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

function AddTo-Path{
param(
    [string]$Dir
)

    if( !(Test-Path $Dir) ){
        Write-warning "Supplied directory was not found!"
        return
    }
    $PATH = [Environment]::GetEnvironmentVariable("PATH")
    if( $PATH -notlike "*"+$Dir+"*" ){
        [Environment]::SetEnvironmentVariable("PATH", "$PATH;$Dir", "Machine")
    }
}

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

Комментарии (5)

Безопаснее SETX

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

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

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

  1. Резервное копирование путь - SETX обрежет твое барахло длиннее 1024 символов
  2. Дон'т позвонить SETX %путь%;ХХХ` - добавляет путь системы в пользовательский путь
  3. Дон'т позвонить SETX %путь%;ХХХ /м` - добавляет путь пользователя на системном пути
  4. Чрезмерное количество файлов может привести к слепоте<суп>1</SUP и ГТ;

Страница SETX ss64 имеет некоторые очень хорошие примеры. Главное это указывает на то, где ключи реестра для SETXпротивSETX /м`

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

`\HKCU по охране окружающей среды

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

в HKLM\система\CurrentControlSet на\управление\диспетчер сеансов\среды

Инструкция по применению#

Добавить пользователя путь

append_user_path.УМК

@ECHO OFF
REM usage: append_user_path "path"
SET Key="HKCU\Environment"
FOR /F "usebackq tokens=2*" %%A IN (`REG QUERY %Key% /v PATH`) DO Set CurrPath=%%B
ECHO %CurrPath% > user_path_bak.txt
SETX PATH "%CurrPath%";%1

Добавить в систему "путь"

append_system_path.УМК. Должен быть запущен в качестве администратора.

(он'ы в принципе тоже, только с разных ключ и SETX /м модификатор)

@ECHO OFF
REM usage: append_system_path "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
ECHO %CurrPath% > system_path_bak.txt
SETX PATH "%CurrPath%";%1 /M

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

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


<суп>1. Не совсем так</SUP и ГТ;

Комментарии (0)

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

задаем путь=%путь%;%КР%

редактировать: как за комментарий - работает со стандартными окнами cmd, но не в PowerShell.

Для PowerShell на %КД% эквивалент [системы.Окружающая Среда::Текущей Каталог

Комментарии (3)

Что делать, если вы ошиблись при вводе путь с помощью setx? Лучший способ просто через окна И. У. Панель управления gt;Все элементы управления-&Панель gt;Система->продвинутая система настройки-и GT;Переменные среды

Прокрутите вниз, чтобы путь и выберите Редактировать. Вы также можете скопировать и вставить его в ваш любимый редактор, так что вы можете увидеть весь путь и более легко редактировать его.

Комментарии (1)

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

попробуйте! его безопасным в использовании и удивительным!

http://www.rapidee.com/en/

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

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

набор путь=с:\программе XAMPP\PHP с%путь%;

Комментарии (0)

Проверяя вышеуказанные рекомендации в Windows 10 LTSB, и взглянуть на "Помоги мне" контуры (которые могут быть просмотрены при печатании 'команда /?' на ЦМД), привел меня к вывод о том, что путь команды изменения системы значений переменных среды путь только для текущей сессии, но после перезагрузке все значения сбросятся на по умолчанию - так же, как они были до использования командной путь.

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

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

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

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

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

НТН

Комментарии (0)

Что касается пункта 2 я'м с помощью простого пакетного файла, который является заполнение путь или другие переменные окружения для меня. Следовательно, нет загрязнения переменных окружения по умолчанию. Этот пакетный файл доступен отовсюду, Так что я могу типа:

c:\>mybatchfile
-- here all env. are available
c:\>php file.php
Комментарии (3)

В командной строке вы говорите cmd, чтобы использовать проводник'командная строка с Добавить перед ним "пуск".

Итак, начать Yourbatchname`.

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

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

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

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

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

Набрав запустить пакетник начнется iexplore.exe.

REGEDIT4
;The bolded name below is the name of the document or program, . 

[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\Batchfile.exe]

;The @ means the path to the file is assigned to the default value for the key.
;The whole path in enclosed in a quotation mark ".

@="\"C:\\Program Files\\Internet Explorer\\iexplore.exe\""

;Optional Parameters. The semicolon means don't process the line. Remove it if you want to put it in the registry

;Informs the shell that the program accepts URLs.

;"useURL"="1"

;Sets the path that a program will use as its' default directory. This is commented out.

;"Path"="C:\\Program Files\\Microsoft Office\\Office\\"

Вы'уже говорил о пути в другой ответ. Также см. doskey /? для макросов УМК (они работают только при вводе текста).

Вы можете выполнять команды запуска для cmd. Из Окон Прибегать Комплект Технической Ссылкой

Автозапуск

HKCU\Software\Microsoft\Command Processor 

Data type Range Default value 
REG_SZ  list of commands  There is no default value for this entry.  

Описание

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

Комментарии (0)

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

https://sourceforge.net/projects/pathenator/

Однако, это только для работников системы, которая имеет Dot.Net 4.0 или выше, таких как Windows 7,8, или 10.

Комментарии (0)

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

Комментарии (2)

использование маршрутизации от gtools

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

pathed /REMOVE "c:\my\folder"
pathed /APPEND "c:\my\folder"

это и показывает результаты без необходимости порождать новые УМК !

Комментарии (0)
  1. Я установил PHP, что время. Извлечено <б>РНР-7***.молния</б> в <и>C:\php\</я и GT;

  2. Резервное копирование переменной моего нынешнего окружения PATH: запустите команду " cmd " и выполнить команду: путь >C:\path-backup.txt

  3. Вам моя текущая стоимость пути в файл C:\path.txt (точно так же)

  4. Изменить path.txt (конечно, мой путь длиной более 1024 символов, Windows работает несколько лет)

  • Я удалил дубликаты пути туда, как <б>'C:\Windows; </б> или <б>C:\Windows\System32;</б> или <б>C:\Windows\System32\Wbem; </б> - я've получили дважды.
  • Удалить удалили путей программ, а также. Пример: <б>C:\Program файлы\NonExistSoftware;</б>
  • Таким образом, мой путь длиной в < 1024 :)))
  • в конце добавить строку пути ;C:\php\
  • Копия <б>только в путь</б> в буфере с обрамляются двойными кавычками! Пример: "по C:\Windows;****;C:\php\" нет <б>путь=</б> должны быть там!!!
  1. Откройте Windows Powershell как администратор.
  2. Выполнить команду:

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

  1. Повторно запускаем терминал (я использую "и далеко не менеджер и") и проверить: в PHP -в
Комментарии (0)

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

Я использую Windows 7 х64. Я сделал ручное обновление в системную переменную PATH. Это работает нормально, если я запускаю cmd.exe из меню стат. А если я типа "и УМК" в адресной строке проводника, похоже, нагрузка на путь от в другом месте, что я'т придется мне инструкцию изменения.

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

Комментарии (0)