Перейти к содержимому

Что такое path в windows

  • автор:

. что такое переменная среды PATH?

Когда операционная система запускает какую-нибудь программу, она стартует новый процесс и каким-то образом передаёт ему информацию о настройках среды, или окружения (в английском языке используется термин environment). Эта информация состоит из набора переменных, содержащих некоторые значения. Процесс может получить эти значения, обратившись к нужной переменной по имени. Например, чтобы узнать, где находится директория, которую операционная система рекомендует использовать для хранения временных файлов, необходимо получить значение переменной среды TEMP .

Как посмотреть значения переменных среды?

В консоли Windows можно посмотреть значение этой переменной, выполнив команду echo %TEMP% , в консоли PowerShell необходимо для этого выполнить команду echo $Env:TEMP , а в консоли Linux или MacOS – команду echo $TEMP .

Если вы пишете программу на языке программирования Python, значение этой переменной можно получить так:

import os temp = os.environ["TEMP"]

В языке Java это можно сделать следующим образом:

String temp = System.getenv().get("TEMP");

В языке C# аналогичное действие выглядит следующим образом:

string temp = System.Environment.GetEnvironmentVariable("TEMP");

На что влияет переменная среды PATH ?

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

Переменная PATH содержит список директорий, в которых операционная система пытается искать исполняемые файлы, если пользователь при запуске не указал явно путь к нужному исполняемому файлу.

Давайте представим себе, что на компьютере с операционной системой Windows установлено две разных версии интерпретатора языка программирования Python. Это можно сделать, если установить их в разные директории, например, C:\Python27 и C:\Python34 . Исполняемый файл для обоих версий называется python.exe .

Для того, чтобы запустить исполняемый файл нужной версии, можно указать полный путь к нему, например, C:\Python34\python.exe :

Но каждый раз указывать полный путь лень, да ещё и помнить его надо.

Альтернатива – добавить в переменную среды PATH путь к директории, где находится этот исполняемый файл, и тогда его можно будет запускать, указывая только имя. А чтобы узнать, где он (по мнению операционной системы) находится, можно использовать команду where в операционной системе Windows либо команду which в операционной системе Linux или MacOS.

Переменная PATH содержит список директорий, в которых операционная система должна искать исполняемые файлы. В качестве разделителя используется точка с запятой (;) в операционной системе Windows и двоеточие (:) в операционных системах Linux и MacOS.

Обратите внимание, что в переменную PATH нужно добавлять не пути к исполняемым файлам, а пути к директориям, где они находятся!

Переменная PATH и программы-утилиты

Не обязательно добавлять в переменную PATH пути ко всем директориям, в которых находятся исполняемые файлы на вашем компьютере. Скорее всего большинство программ вы запускаете “через меню старт”. На этот способ запуска переменная PATH никакого влияния не оказывает. Её важно настроить так, чтобы можно было быстро и удобно запускать программы из консоли.

Например, в эту переменную обычно включается путь к “стандартным” местам, где расположены различные программы-утилиты. В операционной системе Windows это директория C:\Windows\system32 , в операционных системах Linux и MacOS директория /usr/bin .

Именно благодаря этому мы можем, например, в консоли Windows использовать утилиту find для поиска файлов или утилиту telnet для установления удалённого соединения по одноимённому протоколу, просто указывая их имя, а не полный путь c:\Windows\system32\telnet.exe .

Когда у вас появляется новая программа-утилита, возникает вопрос – куда её поместить? С одной стороны, её можно положить в C:\Windows\system32 или /usr/bin . Но если вы не любите “засорять” стандартные директории, тогда сделайте какую-нибудь специальную директорию, складывайте все такие программы в неё, и добавьте путь к этой директории в переменную среды PATH .

Как изменять значения переменных среды?

Пользователям других операционных систем предлагаю погуглить 🙂

Переменную поменял, но эффекта нет. Почему?

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

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

Алексей Баранцев

August 23
2016

Автор: Алексей Баранцев

Если вам понравилась эта статья, вы можете поделиться ею в социальных сетях (кнопочки ниже), а потом вернуться на главную страницу блога и почитать другие мои статьи.
Ну а если вы не согласны с чем-то или хотите что-нибудь дополнить – оставьте комментарий ниже, может быть это послужит поводом для написания новой интересной статьи.

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

Дата последнего изменения: 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 открыта во время внесения изменений в системные переменные среды, изменения не будут обнаружены, пока среда не будет закрыта и открыта заново.

path

Задает путь команды в переменной среды PATH, указывая набор каталогов, используемых для поиска исполняемых файлов (.exe). При использовании без параметров эта команда отображает текущий путь к команде.

Синтаксис

path [[:][;. ][;%PATH%]] path ; 

Параметры

Параметр Описание
[:]

Указывает диск и каталог, заданные в пути к команде. Текущий каталог всегда выполняется поиск перед каталогами, указанными в пути к команде.
; Отделяет каталоги в пути команды. При использовании без других параметров ; очищает существующие пути команд из переменной среды PATH и направляет Cmd.exe для поиска только в текущем каталоге.
%PATH% Добавляет путь команды к существующему набору каталогов, перечисленных в переменной среды PATH. Если этот параметр включен, Cmd.exe заменяет его значениями пути команд, найденными в переменной среды PATH, устраняя необходимость вручную вводить эти значения в командной строке.
/? Отображение справки в командной строке.

Замечания

  • Операционная система Windows выполняет поиск с использованием расширений имен файлов по умолчанию в следующем порядке приоритета: EXE, .com, .bat и CMD. Это означает, что если вы ищете пакетный файл с именем acct.bat, но у вас есть приложение с именем acct.exe в том же каталоге, необходимо включить расширение BAT в командной строке.
  • Если два или более файлов в пути команды имеют одинаковое имя файла и расширение, эта команда сначала ищет указанное имя файла в текущем каталоге. Затем он выполняет поиск каталогов в пути команды в том порядке, в который они перечислены в переменной среды PATH.
  • Если команда пути помещается в файл Autoexec.nt, операционная система Windows автоматически добавляет указанный путь поиска подсистемы MS-DOS при каждом входе на компьютер. Cmd.exe не использует файл Autoexec.nt. При запуске из ярлыка Cmd.exe наследует переменные среды, заданные в my Computer/Properties/Advanced/Environment.

Примеры

Для поиска путей c:\user\taxes, b:\user\invest и b:\bin для внешних команд введите:

path c:\user\taxes;b:\user\invest;b:\bin 

Дополнительные ссылки

Системная переменная PATH Windows

Когда Вы выполняете какую-либо команду в консоли, система ищет соответствие между названием этой команды и программой, которую можно выполнить.

Искать по всему жёсткому диску было бы слишком долго, поэтому поиск осуществляется только по некоторым директориям.

Список этих особых директорий хранится в системной переменной PATH.

Пример

Предположим, что возникла необходимость запускать какую-то программу, например Firefox , непосредственно из командной строки.

Без предварительной подготовки ввод Firefox в консоль выдаст ошибку.

‘firefox’ is not recognized as an internal or external command, operable program or batch file.

Чтобы решить эту проблему нужно добавить директорию с испоняемым файлом firefox в PATH

Добавить директорию в PATH

Быстрый способ перейти к редактированию PATH — нажать клавишу Win и ввести в поиск env

Env с сайта www.eth1.ru

Правый клик на Этот Компьютер (This PC) → Свойства (Properties)

Мой компьютер Свойства изображение с сайта www.eth1.ru

Дополнительные параметры системы (Advanced system settings)

Control Panel - All Control Panel Items - System изображение с сайта www.eth1.ru

Дополнительно (Advanced) → Переменные среды (Environment Variables)

Environment Variables изображение с сайта www.eth1.ru

Если хотите менять для всей системы, то в окошке «Переменные среды» (System Variables) найдите строку PATH в блоке «Системные переменные» (System variables) выделите кликом и нажмите кнопку «Изменить. » (Edit. )

Если хотите менять только для своего пользователя, то делайте это в блоке «Переменные среды пользователя %USERNAME%» (User variables for %USERNAME%)

Environment Variables изображение с сайта www.eth1.ru

Создайте новый путь (New)

Path Environment Variable изображение с сайта www.eth1.ru

Введите адрес директории в которой лежит нужная программа. В нашем случае это

C:\Program Files (x86)\Mozilla Firefox

Path Environment Variable изображение с сайта www.eth1.ru

Перезапустите консоль или открываем новую и пишем там firefox.

Браузер должен запуститься.

Изучить содержимое PATH

В PowerShell достаточно выполнить

Name Value —- —— Path C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPo.

В cmd.exe посмотреть список переменных окружения можно выполнив команду set без параметров.

Выдача содержит системные переменные и переменные пользователя а также дополнительную информацию. Содержимое PATH выделено зелёным.

результат выдачи команды set без параметров

Ошибки

-bash: syntax error near unexpected token `(‘

Скорее всего Вы пытаетесь добавить в unix PATH адрес из Windows, c пробелами, скобками и так далее.

andrey@olegovich-10:/usr/share$ export PATH=/mnt/c/Program Files (x86)/Common Files/Oracle/Java/javapath_target_1128437:$PATH

-bash: syntax error near unexpected token `(‘

Для решения этой проблемы Вам нужно экранировать пробелы и скобки. Если импортируется много путей и ввод очень длинный — немного проще записать PATH=$PATH:/путь , если Вам подходит запись в конец.

Также нужно помнить, что все лишние пробелы сломают импорт — для проверки можно сделать весь скрипт в одну строку в текстовом редакторе.

Также стоит помнить, что если Вы работаете в bash под Windows , то переменные окружения нужно задавать через Windows.

andrey@olegovich-10:/usr/share$ export PATH=$PATH:/mnt/c/Program\ Files\ \(x86\)/Common\ Files/Oracle/Java/javapath_target_1128437

Postgesql

Приведу пример для использования psql из WSL и Git Bash — это может пригодиться если Вы хотите временно добавить путь к psql в PATH чтобы запустить Postrgres скрипт.

В моём случае psql.exe находится в папке C:\Program Files\PostgreSQL\12\bin

В PowerShell можно проверить наличие пути до Postgres с помощью Select-String

echo $Env:Path | Select-String Postgres

Добавить путь до Postgres в конец Path можно следующим образом

$Env:Path += ‘;C:/Program Files/PostgreSQL/12/bin’

Добавить в начало Path

$Env:Path = ‘;C:/Program Files/PostgreSQL/12/bin’ + $Env:Path

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *