PATH является переменной среды и представляет собой список папок, который используется операционной системой для поиска исполняемых файлов (*.EXE). На практике, если папка добавлена в PATH, исполняемые файлы можно запускать из командной сторки без указания полного пути к ним.
- Для того чтобы посмотреть список папок, входящих в
переменную PATH, просто наберите PATH в командной
строке.
- Добавить папку в PATH можно при помощи графического
интерфейса Windows. Для этого надо открыть диалоговое
окно свойств системы (WIN+PAUSE), на вкладке
Дополнительно нажать кнопку Переменные среды,
в разделе системные переменные выделить PATH и
нажать кнопку Изменить.
В рамках автоустановки Windows нас, конечно, интересует
вопрос добавления папки в PATH из командной строки во время
установки системы.
Команда PATH
Эта команда добавляет указанные папки в PATH, но
изменения действительны только в течении текущей
командной сессии (т. е. если вы выполняете эту команду
из пакетного файла, добавленные папки будут находиться в
PATH только на протяжении его работы).
path=%PATH%;"%systemdrive%system32mytools";"%programfiles%Opera"
Утилита pathman
Добавляет указанные папки в PATH на постоянной основе.
Ключ /as добавляет в системный PATH, /au - в
пользовательский; /rs и /ru соответственно
убирают папки из системного и пользовательского PATH.
Утилита pathman входит в Windows 2000 Resource Kit, но вы
можете загрузить ее
по прямой ссылке
pathman /as "%systemdrive%system32mytools";"%programfiles%Opera"
Совет. Вы можете собрать все любимые утилиты
командной строки в одну папку и добавить ее в PATH. В
приведенном выше примере мои утилиты собраны в
%systemdrive%system32mytools.
AutoIt скрипт
;какой путь нужно дописать в переменную Path
$addtopath=@ProgramFilesDir&"7-Zip"
;извлечение текущего содержимого переменной Path
$curpath=RegRead("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment","Path")
;если дописываемого пути нет в переменной Path, то дополняем ее
If Not StringInStr ($curpath,$addtopath) and Not StringInStr ($curpath,"%ProgramFiles%7-Zip") Then
RegWrite("HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment","Path","REG_EXPAND_SZ",$curpath & ";" & $addtopath)
EndIf
Пакетный файл
@echo off
rem какой путь нужно дописать в переменную Path
set addtopath=%ProgramFiles%7-Zip
rem извлечение текущего содержимого переменной Path
rem !ВАЖНО! - в кач-ве разделителя нужно указать только символ табуляции rem (ASCII-код символа после знака "равно" в выделенном фрагменте должен быть 09)
for /F "tokens=3 delims= " %%j in (´reg query "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment" /v Path´) do (set curpath=%%j)
rem проверка наличия дописываемого значения в переменной Path (для избежания дублирования)
for /F %%j in (´echo %curpath% ^| find /C /I "%addtopath%"´) do (set isinpath=%%j)
rem если дописываемого пути нет в переменной Path, то дополняем ее
if %isinpath% == 0 (
reg add "HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment" /v Path /t REG_EXPAND_SZ /d "%curpath%;%addtopath%" /f
)
Ссылки
Статья Переменные среды
Автор: Вадим Стеркин aka Vadikan
Иcточник: unattended.oszone.net