Добавление каталога в переменную среды PATH в Windows
в операционных системах Windows NT я попытался добавить этот каталог в свою систему PATH переменные среды:
C:xamppphp
поэтому я добавил этот каталог с помощью "Мой Компьютер" > "Свойства" > "дополнительно" > "Переменные среды" > "путь". Я сохранил его, но когда я набрал:
> path
на моей консоли он не показывает никаких добавленных "C:xamppphp-каталог
> PATH=D:Program
> FilesAutodeskMaya2008bin;C:Ruby192bin;C:WINDOWSsystem32;C
> :WINDOWS;C:WINDOWSSystem32Wbem;C:PROGRA~1DISKEE~2DISKEE~1;c:Program
> Fil esMicrosoft SQL ServerToolsbinn;C:Program
> FilesQuickTimeQTSystem;D:P rogram FilesTortoiseSVNbin;D:Program
> FilesBazaar;C:Program FilesAndroidan droid-sdktools;D:Program
> FilesMicrosoft Visual StudioCommonToolsWinNT;D:P rogram
> FilesMicrosoft Visual StudioCommonMSDev98Bin;D:Program
> FilesMicroso ft Visual StudioCommonTools;D:Program FilesMicrosoft
> Visual StudioVC98bin
у меня есть два вопроса:
почему это произошло? Быть там что-то я сделал не так?
как я могу добавить каталоги в моем
PATHпеременная с помощью консоли или программно (через пакетный файл)?
14 ответов:
Это только изменяет реестр. Процесс не будет использовать эти значения, пока он не будет запущен после это изменение и не наследует природу своих родителей.
вы не указали, как вы начали сеанс консоли. Лучший способ убедиться в этом-выйти из системы и снова войти в систему.
- откройте окно консоли после изменения системного пути с помощью панели управления или системных настроек.
или
set PATH=%PATH%;C:\xampp\phpв открывшемся окне команд.
разбив его вниз:
set PATH=%PATH%; -- takes the current path and sets PATH to it. C:\xampp\php -- Adds this directory to the path, because of 'set PATH' this is added to the path
внимание: не пропустите создание резервной копии перед использованием этого метода
вы можете потерять данные в свой%PATH%, или добавить нерелевантный контент слияние из системных переменных
другими словами, не слепо копировать/вставить это. Используйте с осторожностью.
в Windows 7 и Windows 8 мы можем постоянно установите путь из командной строки с помощью . Чтобы добавить git к "Путь":
setx path "%path%;C:\Program Files (x86)\Git\bin\"обратите внимание, что эта команда может обрезать путь, который вы передаете, до 1024 символов, теряя что-либо помимо этого. В общем, обязательно используйте
cmd.exe, а неcommand.com. Оба предоставляют командную строку.cmd.exeновее, и у него меньше ограничений.command.comстарше; он имеет ограничения, такие как размер пути.в семействе Windows 8 (8 & 8.1), вы должны запустить командную строку с правами администратора.
Edit: как прокомментировал @FF_Dev
из-за использования
%PATH%переменная, эта команда объединит системные переменные среды с пользовательскими.
вам не нужны
setилиsetxкоманда, просто откройте терминал и введите:PATHэто показывает текущее значение переменной PATH. Теперь вы хотите добавить в каталог? Просто введите:
PATH %PATH%;C:\xampp\phpесли по какой-либо причине вы хотите очистить переменную PATH (нет путей вообще или удалить все пути в ней), введите:
PATH ;обновление
как Даниал Уилсон отметил в комментарии ниже, он устанавливает путь только в текущем сессия. Для установки пути постоянно используйте
setxно имейте в виду, хотя это устанавливает путь постоянно, но не в текущем сеансе, поэтому вам нужно запустить новую командную строку, чтобы увидеть изменения, подробнее здесь.чтобы проверить, существует ли переменная среды или увидеть ее значение, используйте ECHO commnad:
echo %YOUR_ENV_VARIABLE%
в этот век 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 (в случае, если он был ранее добавлен). Вы можете обернуть его вifусловное.Итак, собирая все это вместе:
$PATH = [Environment]::GetEnvironmentVariable("PATH") $xampp_path = "C:\xampp\php" if( $PATH -notlike "*"+$xampp_path+"*" ){ [Environment]::SetEnvironmentVariable("PATH", "$PATH;$xampp_path", "Machine") }
поздно на вечеринку - но удобно, если вы уже находитесь в каталоге, который хотите добавить в PATH.
set PATH=%PATH%;%CD%edit: согласно комментарию-работает со стандартным Windows cmd, но не в powershell.
для powershell the
%CD%эквивалентной[System.Environment]::CurrentDirectory
Безопасный SETX
кивать на все комментарии на @nafscript initial
SETXответ.
SETXпо умолчанию обновит ваш пользователей путь.SETX ... /Mобновить система путь.%PATH%содержит системный путь с добавлением пользовательского путипредупреждения
- резервное копирование
PATH-SETXбудет усеките ваш мусор длиной более 1024 символов- не называй
SETX %PATH%;xxx- добавляет системный путь в путь пользователя- не называй
SETX %PATH%;xxx /M- добавляет путь пользователя в системный путь- чрезмерное использование пакетных файлов может привести к слепоте1
The ss64 SETX страница есть несколько очень хороших примеров. Важно отметить, что это указывает на то, где ключи реестра для
SETXvsSETX /MПеременные Пользователя:
HKCU\EnvironmentСистемные Переменные:
HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environmentинструкция по применению
добавить
append_user_path.cmd@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добавить в систему
PATH
append_system_path.cmd. должен быть запущен от имени администратора.(это в основном то же самое, за исключением другого
KeyиSETX /Mмодификатор)@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 рекомендуется на странице ss64 SETX, которая разбивает настройку переменных среды пользователя или системы.
1. Не совсем верно
Что делать, если вы ошиблись путь с помощью setx? Лучший способ-просто через windows U. I. Панель Управления->Все Элементы Панели Управления->Система->Расширенные Настройки Системы->Переменные Среды
прокрутите вниз до Пути и выберите Изменить. Вы также можете скопировать и вставить его в свой любимый редактор, чтобы вы могли видеть весь путь и более легко редактировать его.
- изменения командной строки не будут постоянными, будут потеряны при закрытии консоли.
- пути работает, как отелей.
- вы можете переопределить другие уже включенные исполняемые файлы. Например, если у вас уже есть другая версия на вашем пути, и вы хотите добавить другую версию без внесения постоянного изменения в путь, вы должны поместить каталог в начале команды.
для переопределения уже включены исполняемые файлы;
set PATH=C:\xampp\php;%PATH%;
помимо всех ответов, если вы хотите хороший графический инструмент для редактирования переменных среды windows, вы можете использовать Быстрый Редактор Среды
попробуйте! его безопасно использовать и потрясающе!
по пункту 2 Я использую простой пакетный файл, который заполняет
PATHили другие переменные окружения для меня. Таким образом, загрязнение переменных среды по умолчанию отсутствует. Этот пакетный файл доступен отовсюду, поэтому я могу ввести:c:\>mybatchfile -- here all env. are available c:\>php file.phpВы можете проверить более подробную информацию об этом простой подход здесь.
проверка вышеуказанных предложений в Windows 10 LTSB и с проблеском на контурах "справка" (которые можно просмотреть при вводе " command/?'on the cmd), привел меня к вывод о том, что команда PATH изменяет значения системных переменных среды Path только для текущего сеанса, но после перезагрузки все значения сбрасываются по умолчанию - так же, как и до использования команды PATH.
С другой стороны, использование команды SETX с правами администратора-это путь более мощный, он изменяет эти значения навсегда (или, по крайней мере, до следующего использования этой команды или до следующего манипулирования этими значениями вручную GUI... ).
но для ясности я подумал, что совместное использование здесь лучшее использование синтаксиса SETX это сработало для меня может помочь кому-то однажды:
SETX PATH "%PATH%;C:\path\to\where\the\command\resides"где любой знак равенства ' = ' следует избегать, и не беспокойтесь пространства! нет необходимости вставлять дополнительные кавычки для пути что содержит пробелы внутри него-знак разделения'; ' выполняйте задание.
ключевое слово PATH, которое следует за SETX, определяет, какой набор значений должен быть изменен среди возможных значений переменных среды системы, а %PATH% (путь слова, окруженный знаком процента) внутри кавычек, говорит ОС оставить существующие значения пути как они есть и добавить следующий путь (тот, который следует за знаком разделения ';' ) к существующим значениям.
HTH
лучшей альтернативой панели управления является использование этой бесплатной программы из sourceforge под названием Pathenator:
https://sourceforge.net/projects/pathenator/
однако, это только РАБОЧИЕ для системы, которая имеет Dot.Net 4.0 или выше, такие как windows 7,8 или 10.
в командной строке вы говорите Cmd использовать командную строку проводника, предваряя ее
start.так
start Yourbatchname.обратите внимание, вы должны зарегистрироваться, как если бы его имя
batchfile.exe.программы и документы могут быть добавлены в реестр, поэтому ввод их имени без их пути в диалоговом окне Пуск - Выполнить или ярлык позволяет Windows, чтобы найти их.
это общий reg-файл. Скопируйте приведенные ниже строки в новый текстовый документ и сохраните его как anyname.рег. Отредактируйте его с помощью своих программ или документов.
в пути используйте \ для разделения имен папок в ключевых путях, поскольку regedit использует один \ для разделения его ключевых имен. Все reg файлы начинаются с REGEDIT4. Точка с запятой превращает строку в комментарий. Символ @ означает присвоение значения ключу, а не именованному значению.
файл не должен существовать. Это может быть использовано для набора слова.exe, чтобы открыть Winword.исполняемый.
введя
start batchfileначнется iexplore.исполняемый.REGEDIT4 ;The bolded name below is the name of the document or program, <filename>.<file extension> [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 макросов (они работают только при вводе).вы можете запускать команды запуска для CMD. Из Windows Recource Kit Техническая Справка
Автозагрузка
HKCU\Software\Microsoft\Command Processor Data type Range Default value REG_SZ list of commands There is no default value for this entry.описание
содержит команды, которые выполняются при каждом запуске Cmd.исполняемый.
Comments