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

Тема в разделе "FAQ по Пакетным файлам CMD/BAT", создана пользователем Dragokas, 2 ноя 2013.

  1. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.306
    Как добавить путь в переменную Path ?

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

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

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

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

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

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

    Change_Path.png

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

    Код (DOS):
    @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.

    В конце кода нужно дописать:
    Код (DOS):
    setx temp "%temp%"
    P.S. Здесь же можно хранить и пользовательские переменные, которые необходимо сделать глобальными.
    Например, чтобы создать переменную с именем MyVar и значением MyValue,
    выполните команду:
    Код (DOS):
    Reg Add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v MyVar /t REG_SZ /d "MyValue" /f
     
    Последнее редактирование: 2 ноя 2013
    orderman, shestale и Kиpилл нравится это.
  2. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.306
    Как это использовать?

    Допустим мы добавили 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
    параметр с именем исполняемого файла без указания полного пути,
    программа автоматически запустится при загрузке ОС.
     
    Последнее редактирование: 1 янв 2014
    Kиpилл нравится это.
  3. Гимаев Наиль
    Оффлайн

    Гимаев Наиль Пользователь

    Сообщения:
    59
    Симпатии:
    98
    От себя добавлю. Очень важно из какой программы запускается батник или cmd. После изменений переменной PATH только explorer.exe может запустить программу так, чтобы запускаемая программа (батник или CMD) получила свежие данные о переменных окружения (и то не во всех случаях). При запуске из FAR, Total Commander и т.п. запускаемая программа получает переменные среды запускающей программы.
     
    orderman, Kиpилл и Dragokas нравится это.
  4. Dragokas
    Оффлайн

    Dragokas Very kind Developer Команда форума Супер-Модератор Разработчик Клуб переводчиков

    Сообщения:
    4.478
    Симпатии:
    4.306
    Батник для добавления нового пути в переменную окружения Path.

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

    Каталог указывать в 4-й строчке кода:
    Код (DOS):

    @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
     
    orderman и Kиpилл нравится это.

Поделиться этой страницей