Компьютерные уроки

Настройка системной переменной PATH. Команда SET - работа с переменными среды Windows Переменные среды windows 7 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.

Эта переменная содержит список директорий, в которых операционная система должна искать исполняемые файлы. В качестве разделителя используется точка с запятой (;) в операционной системе 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 .

PATH является переменной среды и представляет собой список папок, который используется операционной системой для поиска исполняемых файлов (*.EXE). На практике, если папка добавлена в PATH, исполняемые файлы можно запускать из командной строки без указания полного пути к ним.

  • Для того чтобы посмотреть список папок, входящих в переменную PATH, просто наберите PATH в командной строке.
  • Добавить папку в PATH можно при помощи графического интерфейса Windows. Для этого надо открыть диалоговое окно свойств системы (WIN+PAUSE), на вкладке Дополнительно нажать кнопку Переменные среды , в разделе системные переменные выделить PATH и нажать кнопку Изменить .

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

Команда PATH

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

Path=%PATH%;"%systemdrive%\system32\mytools";"%programfiles%\Opera"

Утилита pathman

pathman /as "%systemdrive%\system32\mytools";"%programfiles%\Opera"

Совет. Вы можете собрать все любимые утилиты командной строки в одну папку и добавить ее в PATH. В приведенном выше примере мои утилиты собраны в %systemdrive%\system32\mytools.

AutoIt скрипт

;какой путь нужно дописать в переменную Path $addtopath=@ProgramFilesDir&"\7-Zip" ;извлечение текущего содержимого переменной Path $curpath=RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment","Path")

Переменная PATH являет собой системную переменную, с помощью которой операционная система находит нужные исполняемые объекты в командной строке или окне терминала. В параметре переменной содержится список (через точку с запятой ; ) директорий, в которых будет происходить поиск исполняемого файла при вызове команды из консоли.

В операционной системе Windows системную переменную PATH можно задать с помощью системной утилиты в Панели управления Windows .

Опишем, как изменить значение переменной PATH в операционной системе Windows 10 .

В меню Пуск выполняем команду Система (Панель управления → Система и безопасность → Система):

Нажимаем на ссылку Дополнительные параметры системы :

Открываем окно Переменные среды:


В разделе Переменные среды и Системные переменные выбераем переменную среды PATH . Нажимаем Изменить . Если переменной PATH не существует, нажимаем Создать .

Для изменения системных переменных окружения, необходимо обладать соответствующими правами. Если таких нет - следует создать пользовательскую переменную.


В окне "Изменить переменную среды " (или Новая системная переменная ) укажите значение переменной среды PATH , после чего подтвердите действие нажатием на кнопку ОК .


Если вы используете переменную PATH не для командной строки, а других приложений, например модуль PHP , следует перезагрузить компьютер.

Инструкция

Нажмите правой кнопкой мыши на значке «Мой компьютер», расположенном на рабочем столе или в меню «Пуск». В появившемся контекстном меню выберите самую нижнюю строку «Свойства» – откроется новое окно «Свойства системы». Вы также можете вызвать окно «Свойства системы» нажатием сочетания горячих клавиш Windows+Pause Break. Если вы используете операционную систему Windows 7, то также кликните на правой кнопкой мыши на значке «Мой компьютер», выберите пункт «Свойства», после чего в левой части окна свойств выберите «Дополнительные параметры системы».

В окне «Свойства системы» перейдите на вкладку «Дополнительно», кликнув на ней левой кнопкой мыши – вы увидите три раздела дополнительных настроек системы. Под ними будут располагаться еще две кнопки – «Переменные среды» и «Отчет об ошибках». Вам нужны переменные среды – кликните на соответствующей кнопке.

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

Теперь при выделенной переменной path нажмите на кнопку «Изменить», расположенную под окошком списка – откроется небольшое окошко «Изменение системной переменной», где будут расположены две строки ввода – «Имя переменной» и «Значение переменной». Измените значение переменной path на то, которое вы хотите.

По-другому изменить значение переменной path можно следующим образом: в окне «Переменные среды» нажмите на кнопку «Создать», после чего в открывшемся окошке в поле «Имя переменной» введите «path» и в поле «Значение переменной» введите нужное значение. При этом текущее значение переменной path сменится на то, которое вы только что ввели.

Видео по теме

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

Инструкция

Кликните иконку «Мой компьютер» на рабочем столе правой кнопкой мыши и выберите пункт «Свойства» во всплывшем контекстном меню. Это же можно проделать и с пунктом «Компьютер» в главном меню операционной системы на кнопке «Пуск». А можно просто нажать сочетание горячих клавиш win + pause - любое из этих действий запустит компонент ОС с названием «Свойства системы».

Перейдите на вкладку «Дополнительно» открывшегося окна и нажмите кнопку «Переменные среды», размещенную в ее нижней части. Запустится еще одно окно с размещенными в нем двумя таблицами - нужная вам установка операционной системы помещается в верхней («Переменные среды пользователя»). Выделите строку, у которой в колонке «Переменная» присутствует надпись Path, а затем нажмите кнопку «Изменить» под этой таблицей. В результате откроется третье, уже последнее диалоговое окно с заголовком «Изменение пользовательской переменной» и двумя полями для заполнения.

Впишите нужный путь в поле «Значение переменной». Если в нем уже есть какая-либо запись, то новую допишите справа, отделив ее от существующей точкой с запятой (;). Чтобы не ошибиться в написании полного адреса к нужному каталогу лучше скопировать путь к нему в Проводнике Windows - откройте его (win + e), перейдите в нужную папку, выделите полный путь в адресной строке файл-менеджера (ctrl + a), скопируйте (ctrl + c), вернитесь в диалоговое окно и вставьте содержимое буфера обмена (ctrl + v) в поле «Значение переменной».

Оставьте без изменений значение в поле «Имя переменной» (там должна остаться надпись Path) и нажмите кнопку OK. После этого последовательно понажимайте такие же кнопки OK и в двух других открытых окнах. На этом процедура добавления нового значения в переменную Path будет завершена.

Видео по теме

Все мобильные телефоны Nokia изготовлены на платформах S40 и S60. Это означает, что на них автоматически интегрированы java-машины. Поэтому, чтобы поместить на такой телефон приложение J2ME, нужно всего лишь скопировать его во встроенную память телефона или на карту памяти.

Инструкция

Запустите интернет-браузер вашего мобильного телефона Nokia, чтобы поставить яву. Вам нужно скачать файл формата JAR. Для других телефонов понадобилось бы еще скачивать файл формата JAD. Однако, вследствие большего спроса именно на этот тип файла, вам будет проще скачать именно его.

Обратите внимание, что автоматически с файлом формата JAD на ваш телефон также будет скачан файл формата JAR. Используйте встроенный браузер телефона, если он изготовлен на платформе S40. Это нужно для того, чтобы после скачивания файл автоматически установился. Т.е. установить яву необходимость уже отпала. Зайдите в раздел «Игры» или «Приложения». В списке программ вы найдете только что установленный файл.

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

Сделайте следующее, если ваш телефон выполнен на платформе S60. Запустите встроенный браузер вашего мобильного телефона. Скачайте нужный файл формата JAR или JAD. Можно использовать и браузер сторонних разработчиков, такой как Opera Mobile, Opera Mini или какой либо другой. Вся в том, что встроенный браузер автоматически сохранит файл в папку UCDownloaded, а сторонним браузером вы можете задать любую папку в качестве места сохранения на карте памяти вашего мобильного телефона.

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

Выполнение операции установки переменной окружения (среды) может быть осуществлено пользователем стандартными средствами операционной системы Microsoft Windows и не предполагает привлечения дополнительного программного обеспечения сторонних разработчиков.

Попробуйте в окне «Выполнить» (Win + R) ввести wmplayer и нажать Enter — откроется Windows Media Player. Теперь сделайте то же самое в командной строке. Проигрыватель не запустится, потому что не найден путь к нему! Почему так происходит?

Читатель блога Андрей поинтересовался по почте, в каких случаях для запуска исполняемых файлов не требуется вводить полный путь к ним. Вопрос показался мне элементарным, и я кратко предложил читателю обратить внимание на переменную PATH.

Переменная PATH

Переменная среды PATH содержит пути, в которых Windows при выполнении команды автоматически ищет исполняемые файлы (EXE, CMD, VBS и т.д.). Изначально в переменную внесены только основные системные расположения, поэтому программы из папок Windows и System32 можно запускать, не указывая полный путь.

Как посмотреть содержимое переменной PATH

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

Когда исполняемый файл находится в одном из расположений, известных Windows, вводить полный путь к файлу необязательно. Я использую это свойство операционной системы, чтобы быстро запускать любимые , утилиты Nirsoft и другие программы из своего сундучка (на рисунке видно, что в PATH добавлена папка Tools).

Как добавить свои пути к переменной PATH

Вы можете добавить собственные пути, изменив системную переменную PATH, либо создав пользовательскую переменную с таким же именем. Разницу между типами переменных я объяснял в рамках одной из викторин . Там же рассказывается, как изменять переменные среды в графическом интерфейсе . Обратите внимание, что пути разделяются точкой с запятой.

Можно быстро добавить свои пути в PATH из командной строки с помощью утилиты setx , входящей в состав Windows 7. Ниже приводится пример добавления пути C:\myfolder в системную переменную PATH (командная строка должна быть запущена от имени администратора).

For /f "tokens=2*" %a In ("Reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment" /v Path") Do Set "systempath=%b" set newpath=%systempath%;C:\myfolder1 setx /m path "%newpath%"

Сначала с помощью команды reg считывается список путей из системной переменной PATH, хранящейся в реестре. Затем команда set задает переменную newpath с нужным путем в рамках текущей сессии командной строки, а команда setx /m делает новый путь постоянным для системной переменной (параметр /m ).

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

For /f "tokens=2*" %a In ("Reg query "HKCU\Environment" /v Path") Do Set "userpath=%b" set newpath=%userpath%;C:\myfolder2 setx path "%newpath%"

Учтите, что код выше рассчитан на выполнение в командной строке. В командном файле (CMD) символы процента в первой строке должны быть двойными.

Строго говоря, здесь можно было обойтись и без setx , поскольку reg может не только считывать данные из реестра, но и записывать их туда. Но во многих случаях с setx проще работать за счет более компактного синтаксиса.

Конечно, я не расписывал все это так подробно для Андрея, а просто задал ему направление. Однако на следующий день он написал мне, что все это знал (я — посредственный телепат:) и задал вопрос, которым я начал сегодняшний рассказ. Это было уже интереснее, и я пообещал раскрыть тему в блоге!

Раздел реестра App Paths

Действительно, не указывая полный путь, можно запустить некоторые стандартные программы Windows из окна «Выполнить», но не из командной строки. Помимо проигрывателя Windows Media, это, например, Paint (mspaint ) и Wordpad (wordpad ). То же самое верно и для приложений MS Office – проверьте команду excel или winword !

Разница между окном «Выполнить» и командной строкой заключается в том, что оболочка Windows (explorer) обладает более широкими возможностями, чем консольный интерпретатор команд. В данном случае все дело в функции ShellExecuteEx , которой снабжена оболочка. Когда вы запускаете исполняемый файл без указания полного пути к нему, функция выполняет поиск в:

  • текущей папке
  • папках Windows и System32
  • разделе реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths

Как работает раздел App Paths

Давайте посмотрим на работу App Paths на примере Windows Media Player.

  • создан подраздел с псевдонимом исполняемого файла (в данном случае – это wmplayer.exe )
  • в параметре По умолчанию указан полный путь к файлу. Если в пути к файлу используется переменная, параметр должен быть расширяемым строковым (REG_EXPAND_SZ). Указывая абсолютный путь, можно обойтись обычным строковым параметром (REG_SZ).
  • в параметре Path задана рабочая папка программы

Работает это очень просто. Вы вводите псевдоним файла в окне «Выполнить» или адресной строке проводника, а система автоматически смотрит в указанном пути.

Как ускорить свою работу с помощью App Paths

Этим разделом реестра можно пользоваться для быстрого запуска программ, ярлыки которых не нужны вам в панели задач или на рабочем столе. Например, для поиска и замены в текстовых файлах я применяю программу BKReplacem (replacem.exe), у которой своя папка внутри папки PortableSoft. В разделе App Paths я создал подраздел bkr.exe и указал полный путь к утилите. Теперь ее запуск сводится к выполнению bkr в окне «Выполнить».

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

Еще одно применение, которое я нашел для App Paths, это запуск cmd.exe с полными правами. Я давно обхожусь без запроса UAC, благодаря запуску командной строки из планировщика заданий . Создав подраздел cmda.exe, я указал в нем путь к командному файлу, выполняющему задание.

В нем всего одна строка:

Schtasks /run /tn CMD_Admin

Теперь достаточно ввести в окно «Выполнить» команду cmda , чтобы открыть командную строку от имени администратора.

Что интересного можно найти в разделе App Paths

Во-первых, я уверен, что вы найдете там многие из установленных у вас программ. Вместо того чтобы прописывать путь к своей папке в переменную PATH, программы регистрируют свой исполняемый файл в разделе App Paths, следуя рекомендациям Microsoft.

Во-вторых, там есть подразделы WORDPAD.EXE и WRITE.EXE , причем оба ведут к файлу wordpad.exe.

Программа Write, входившая в состав первых операционных систем Microsoft, в Windows 95 была заменена на WordPad. Вы также найдете подраздел pbrush.exe , ссылающийся на mspaint, лежащий в System32.

Программ Write и Paintbrush нет в Windows уже лет 15, однако упоминание о них до сих пор содержится в системе! И это подводит нас к разговору о том, когда и зачем в Windows ввели раздел App Paths.

История App Paths

Раздел App Paths появился в Windows 95 в качестве противоядия от засорения пути PATH, который задавался в файле autoexec.bat . Программы традиционно добавляли туда пути к своим папкам, как это до сих пор иногда делается с одноименной переменной среды. При загрузке системы файл считывался, а программы оказывались в системном пути.

Кстати, старый способ autoexec.bat до сих пор работает, позволяя запускать исполняемые файлы без указания пути, хотя использовать его уже нет смысла.

Основная проблема для разработчиков состояла в том, что найти в autoexec.bat правильную строку SET PATH было нетривиальной задачей. При этом нельзя было вставлять свою строку в начало файла, поскольку другая команда ниже могла переопределить переменную.

Кроме того, добавлять путь в PATH ради того чтобы указать Windows на одну единственную программу, было не рационально, сродни стрельбе из пушки по воробьям. Вот тогда разработчики Windows 95 и придумали решение с разделом реестра, позволяющим указывать пути к конкретным исполняемым файлам.

Почему в этом разделе до сих пор есть подразделы для Write и Paintbrush? Так Windows обеспечивает совместимость программ!

Теоретически, какая-нибудь древняя программа может полагаться на своих ровесниц, наследницы которых уже сменили имя или расположение. Чтобы старые приложения не ломались, используется раздел реестра App Paths.

Сводная таблица

Итак, подведем итог! Проще всего сравнить возможности оболочки Windows и командного интерпретатора системы в табличной форме.

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

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

А вы используете раздел реестра App Paths или собственные переменные среды? Если да, то расскажите в комментариях, как они упрощают вашу работу!