Как добавить путь в переменную Path

Dragokas

Angry & Scary Developer
Команда форума
Супер-Модератор
Разработчик
Клуб переводчиков
Сообщения
7,809
Реакции
6,574
Как добавить путь в переменную Path ?

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

Зачем это?
Например, Вы установили архиватор WinRAR. Чтобы заархивировать файл консольной утилитой Rar.exe нужно:
  • задать полный путь к исполняемому файлу:

    CMD/BATCH:
    "c:\program files\winrar\rar.exe" a file.txt
    либо
    .
  • скопировать утилиту rar.exe в папку с бат-файлом (или Windows\System32), тогда путь указывать не нужно:

    CMD/BATCH:
    rar.exe a file.txt
    либо
    .
  • добавить путь расположения утилиты rar.exe в переменную Path. Код бат-файла остается таким же.
Список путей в Path
Для того чтобы посмотреть список папок, входящих в переменную PATH, просто наберите PATH в командной строке.

Как добавить?
Добавить папку в PATH можно:

1) при помощи графического интерфейса Windows.
Открыть окно свойств системы (WIN+PAUSE), на вкладке "Дополнительно" нажать кнопку "Переменные среды", в разделе "Системные переменные" выделить "PATH" и нажать кнопку "Изменить".
Через точку с запятой прописать путь к папке без кавычек, как в примере:

Change_Path.png


2) воспользоваться таким БАТ-файлом:

CMD/BATCH:
@echo off
set Key=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

:: Здесь прописываем полный путь к папке, которую следует добавить к Path
set FolderToAdd=c:\program files\winrar

For /f "tokens=2*" %%a In ('Reg.exe query "%key%" /v Path^|Find "Path"') do set CurPath=%%~b
reg.exe add "%Key%" /v Path /t REG_EXPAND_SZ /d "%CurPath%;%FolderToAdd%" /f

Для Windows Vista, 7, 8 скрипт нужно запускать с повышенными правами.

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

Альтернативно, обновление пользовательских параметров можно форсировать запуском утилиты SetX, которая встроена в Windows 7.
В остальных версиях распространяется в составе Windows Resourse Kit.

В конце кода нужно дописать:
CMD/BATCH:
setx temp "%temp%"
P.S. Здесь же можно хранить и пользовательские переменные, которые необходимо сделать глобальными.
Например, чтобы создать переменную с именем MyVar и значением MyValue,
выполните команду:
CMD/BATCH:
Reg Add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v MyVar /t REG_SZ /d "MyValue" /f
 
Последнее редактирование:
Как это использовать?

Допустим мы добавили C:\Program Files\Winrar к путям "Path",
В этой папке имеем:

rar_folder.png


Какие преимущества получаем?

Можем открывать любой файл из этой папки, просто введя его имя
(для исполняемых файлов EXE, Com, Bat... расширение имени указывать не обязательно).

Примеры:

1) Вводим имя в поисковую строку меню "ПУСК" (для ОС >= Vista)

Нажимаем ПУСК (в Windows 8 - нажимаем Ctrl + Esc, или клавишу "Win" ("флажок"))

path_start.png


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

2) ПУСК -> Выполнить (для ОС >= Vista нажимаем комбинацию Win + R)

path_Execute.png


Откроется файл справки. Так можно открывать любой файл.

3) Через командную строку.

path_cmd.png


Если у Вас уже была открыта командная строка еще перед добавлением пути к переменной Path,
следует закрыть ее и открыть новую CMD, т.к. старая все еще работает со своим окружением,
полученным из системы в момент ее открытия.

4) Через реестр:
например, добавив в
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
параметр с именем исполняемого файла без указания полного пути,
программа автоматически запустится при загрузке ОС.
 
Последнее редактирование:
открыть новую CMD, т.к. старая все еще работает со своим окружением
От себя добавлю. Очень важно из какой программы запускается батник или cmd. После изменений переменной PATH только explorer.exe может запустить программу так, чтобы запускаемая программа (батник или CMD) получила свежие данные о переменных окружения (и то не во всех случаях). При запуске из FAR, Total Commander и т.п. запускаемая программа получает переменные среды запускающей программы.
 
Батник для добавления нового пути в переменную окружения Path.

Для систем Vista и выше запускать с повышенными привилегиями.

Каталог указывать в 4-й строчке кода:
CMD/BATCH:
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
:: Указываем добавляемый каталог
set FolderToAdd=c:\my special soft
:: Получаем текущее значение Path
set Key=HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
For /f "tokens=2*" %%a In ('Reg.exe query "%key%" /v Path^|Find "Path"') do set "CurPath=%%~b"
:: Дописываем новый каталог
reg.exe add "%Key%" /v Path /t REG_EXPAND_SZ /d "!CurPath!;!FolderToAdd!" /F
:: Эта команда содержит API для обновления пользовательских настроек Path (только Vista+)
setx temp "%temp%"
:: для XP
rundll32 user32.dll,UpdatePerUserSystemParameters
pause

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

path.png
 
Назад
Сверху Снизу