Я пытаюсь добавить 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
У меня есть два вопроса:
- Почему это случилось? Что-то я не так сделал?
- Кроме того, как мне добавить каталоги в мою
PATH
переменную, используя консоль (и программно, с командным файлом)?
windows
command-line
path
environment-variables
Netorica
источник
источник
Ответы:
Это только изменяет реестр. Существующий процесс не будет использовать эти значения. Новый процесс будет делать это, если он запущен после этого изменения и не наследует старую среду от своего родителя.
Вы не указали, как вы начали сеанс консоли. Лучший способ убедиться в этом - выйти из командной оболочки и запустить ее снова. Затем он должен наследовать обновленный PATH.
источник
WM_SETTINGCHANGE
сообщение было отправлено из приложения? stackoverflow.com/a/8358361Опция 1
После того, как вы измените
PATH
с помощью графического интерфейса пользователя закройте и снова откройте окно консоли.Это работает, потому что только программы, запущенные после изменения, увидят новый
PATH
.Вариант 2
Выполните эту команду в открывшемся окне:
Эта команда добавляется
C:\your\path\here\
к текущейPATH
.Разбивая это:
set
- Команда, которая изменяет переменные среды cmd только для текущего сеанса cmd ; другие программы и система остаются без изменений.PATH=
- означает, чтоPATH
это переменная среды, которая будет временно изменена.%PATH%;C:\your\path\here\
-%PATH%
Часть расширяется до текущего значенияPATH
, а;C:\your\path\here\
затем присоединяется к нему. Это становится новымPATH
.источник
Вы можете навсегда добавить путь к
PATH
сsetx
командой:Уберите
/M
флаг, если хотите установить пользователяPATH
вместо системыPATH
.Ноты:
setx
Команда доступна только в Windows 7 и более поздних версий.Вы должны запустить эту команду из командной строки с повышенными правами.
Если вы хотите изменить его только для текущего сеанса, используйте set .
источник
SETX /M path "%path%;C:\Program Files (x86)\Git\bin\"
установить значение PATH на уровне машины%PATH%
переменной эта команда объединяет глобальные переменные env с пользовательскими. Не так ли? Это может создать нежелательные побочные эффекты, особенно с ключом / M%PATH%
переменная не может быть синхронизирован с переменными окружения , как он будет загружен на запуск командной строки и никогда не перезагружается после (даже при выполнении команды Setx). Также это могло быть изменено локально ранее выполненными сценариями.Вам не нужно ничего
set
илиsetx
команды, просто откройте терминал и введите:Это показывает текущее значение переменной PATH. Теперь вы хотите добавить каталог к нему? Просто введите:
Если по какой-либо причине вы хотите очистить переменную PATH (без путей вообще или удалить все пути в ней), введите:
Обновить
Как отметил Даниал Уилсон в комментарии ниже, он устанавливает путь только в текущем сеансе. Чтобы постоянно
setx
указывать путь, используйте, но имейте в виду, хотя этот путь задается постоянно, но НЕ в текущем сеансе, поэтому вам нужно запустить новую командную строку, чтобы увидеть изменения, подробнее здесь .Чтобы проверить, существует ли переменная окружения или увидеть ее значение, используйте команду ECHO:
источник
PATH %PATH%;C:\Program Files\...
вместоPATH "%PATH%;C:\Program Files\..."
Я бы использовал PowerShell вместо этого!
Чтобы добавить каталог в PATH с помощью PowerShell, выполните следующие действия:
Чтобы установить переменную для всех пользователей, для всей машины последняя строка должна выглядеть следующим образом:
В сценарии PowerShell вы можете проверить наличие своего
C:\xampp\php
перед добавлением в PATH (если оно было добавлено ранее). Вы можете обернуть его вif
условный.Итак, все вместе:
Более того, можно создать универсальную функцию. Просто укажите каталог, который вы хотите добавить:
Вы могли бы сделать вещи лучше, выполняя некоторую полировку. Например, используйте
Test-Path
для подтверждения того, что ваш каталог действительно существует.источник
SetEnvironmentVariable
сMachine
параметром необходимо открыть PowerShell с правами администратора$env:userprofile
.user
илиmachine
в вызовеGetEnvironmentVariable
. В противном случае$PATH
будет содержать значение как пользовательской, так и машинной части реестра, что приведет к ненужному увеличению значения переменной пути при ее повторном сохранении.Безопасный SETX
Кивок на все комментарии по первоначальному
SETX
ответу @ Nafscript .SETX
по умолчанию обновит ваш пользовательский путь.SETX ... /M
обновит ваш системный путь.%PATH%
содержит системный путь с добавленным пользовательским путемПредупреждения
PATH
-SETX
урезает ваш мусор более 1024 символовSETX %PATH%;xxx
- добавляет системный путь в пользовательский путьSETX %PATH%;xxx /M
- добавляет путь пользователя в системный путьСтраница SETX ss64 имеет несколько очень хороших примеров. Важно отметить, где ключи реестра для
SETX
противSETX /M
Инструкция по применению
Добавить к пользователю
PATH
append_user_path.cmd
Добавить в систему
PATH
append_system_path.cmd
, Должен быть запущен от имени администратора.(это в основном то же самое, за исключением другого
Key
иSETX /M
модификатора)альтернативы
Наконец, существует потенциально улучшенная версия под названием SETENV, рекомендованная страницей SETX ss64, в которой разделены установки пользовательских или системных переменных среды.
1. Не совсем верно
источник
Поздний вечер - но удобно, если вы уже находитесь в каталоге, который хотите добавить в PATH.
set PATH=%PATH%;%CD%
редактировать: согласно комментарию - работает со стандартным Windows CMD, но не в PowerShell.
Для powershell
%CD%
эквивалент[System.Environment]::CurrentDirectory
источник
[System.Environment]::CurrentDirectory
Помимо всех ответов, если вы хотите хороший графический инструмент для редактирования переменных среды Windows, вы можете использовать Rapid Environment Editor
попробуй это! его безопасно использовать и удивительно!
http://www.rapidee.com/en/
источник
Переопределить уже включенные исполняемые файлы;
источник
Проверка приведенных выше предложений в Windows 10 LTSB и краткий обзор «справочных» схем (которые можно просмотреть при вводе команды /? В cmd) привели меня к выводу, что команда PATH изменяет системную переменную среды Значения пути только для текущего сеанса, но после перезагрузки все значения сбрасываются к значениям по умолчанию - так же, как они были до использования команды PATH.
С другой стороны, использование команды SETX с административными привилегиями намного эффективнее, оно корректно изменяет эти значения (или, по крайней мере, до следующего использования этой команды или до следующего манипулирования этими значениями с помощью графического интерфейса пользователя ...).
Но для ясности я подумал, что если я расскажу о лучшем использовании синтаксиса SETX, которое мне помогло, однажды кто-нибудь может помочь:
где следует избегать любого знака равенства '=', и не беспокойтесь о пробелах! нет необходимости вставлять больше кавычек для пути, который содержит пробелы внутри него - знак разделения ';' сделать работу.
Ключевое слово PATH, которое следует за SETX, определяет, какой набор значений следует изменить среди возможных значений переменных системной среды, а% PATH% (слово PATH, окруженное знаком процента) внутри кавычек, говорит ОС покинуть существующий Значения PATH, как они есть, и добавьте следующий путь (тот, который следует за знаком разделения ';') к существующим значениям.
НТН
источник
Что касается пункта 2, я использую простой командный файл, который
PATH
заполняет меня или другие переменные окружения для меня. Следовательно, по умолчанию нет загрязнения переменных среды. Этот командный файл доступен везде, поэтому я могу набрать:источник
source
такой файл, например. mybatchfile
).В командной строке вы указываете Cmd использовать командную строку Explorer, предварительно указав ее
start
.Так
start Yourbatchname
.Обратите внимание, вы должны зарегистрироваться, как если бы его имя
batchfile.exe
.Программы и документы могут быть добавлены в реестр, поэтому ввод их имени без указания пути в диалоговом окне «Пуск - запуск» или ярлык позволяет Windows найти их.
Это общий reg файл. Скопируйте строки ниже в новый текстовый документ и сохраните его как anyname.reg. Отредактируйте его с вашими программами или документами.
В путях используйте \ для разделения имен папок в ключевых путях, так как regedit использует один \ для разделения имен ключей. Все рег файлы начинаются с REGEDIT4. Точка с запятой превращает строку в комментарий. Символ @ означает присвоение значения ключу, а не именованному значению.
Файл не должен существовать. Это можно использовать, чтобы настроить Word.exe для открытия Winword.exe.
Печатание
start batchfile
запустит iexplore.exe.Вам уже рассказали о пути в другом ответе. Также см
doskey /?
макросы cmd (они работают только при наборе текста).Вы можете запускать команды запуска для CMD. Из Технического справочника Windows Recource Kit
AutoRun
Описание
Содержит команды, которые выполняются при каждом запуске Cmd.exe.
источник
Лучшей альтернативой панели управления является использование этой бесплатной программы от sourceforge под названием Pathenator:
https://sourceforge.net/projects/pathenator/
Тем не менее, он работает только для системы с Dot.Net 4.0 или выше, такой как Windows 7,8 или 10.
источник
Если вы запустите команду
cmd
, она обновит все системные переменные для этого командного окна.источник
exit
дважды, сначала чтобы закрыть новый, а затем закрыть первый сеанс (со старой средой).использовать патч от gtools
это делает вещи интуитивно понятным способом, например:
это и показывает результаты без необходимости создавать новый cmd !
источник
Сделайте резервную копию моей текущей переменной среды PATH: запустите
cmd
и выполните команду:path >C:\path-backup.txt
Получить мое текущее значение пути в файл C: \ path.txt (таким же образом)
setx path "Here you should insert string from buffer (new path value)"
php -v
источник
Как бы банально это ни было, мне пришлось перезапустить Windows, когда столкнулся с этой проблемой.
Я использую Windows 7 x64. Я сделал ручное обновление системной переменной PATH. Это работает нормально, если я запускаю cmd.exe из меню статистики. Но если я наберу «cmd» в адресной строке Windows Explorer, он, похоже, загрузит PATH из другого места, в котором не было моих изменений вручную.
(Чтобы избежать сомнений - да, я несколько раз закрывал и запускал cmd, прежде чем перезапустить, и это не помогло.)
источник