PATH — команда CMD и одноимённая переменная среды Windows, которая определяет, в каких директориях система ищет исполняемые файлы при вводе команды без полного пути. Именно благодаря PATH можно набрать python вместо C:\Python312\python.exe.
- Синтаксис команды PATH
- Ключи и параметры
- Примеры использования
- Просмотр текущего PATH
- Временное добавление директории в PATH
- Временная замена всего PATH
- Очистка PATH в сессии
- Постоянное добавление директории для текущего пользователя
- Постоянное изменение системного PATH (для всех пользователей)
- Просмотр PATH в PowerShell
- Частые ошибки и решения
- Когда применять, а когда нет
- FAQ
- Как посмотреть переменную PATH в командной строке?
- Как добавить путь в PATH не потеряв остальные директории?
- Как сделать изменение PATH постоянным?
- Почему PATH, заданный через CMD, сбрасывается после перезапуска?
- Можно ли редактировать PATH в PowerShell?
- Что будет если PATH окажется пустым?
Синтаксис команды PATH
PATH [путь1[;путь2...]] PATH ; PATH
Плейсхолдеры:
путь1;путь2— список директорий, разделённых точкой с запятой.PATH ;— очистить переменную PATH для текущей сессии CMD.PATHбез аргументов — вывести текущее значение переменной.
Ключи и параметры
| Ключ / форма | Описание | Пример |
|---|---|---|
PATH (без аргументов) | Выводит текущее значение PATH | PATH |
PATH ; | Очищает PATH в рамках текущей сессии CMD | PATH ; |
PATH dir | Устанавливает PATH равным одному каталогу (перезаписывает!) | PATH C:\Tools |
PATH %PATH%;dir | Добавляет каталог к существующему PATH, не затирая остальные | PATH %PATH%;C:\MyApp\bin |
/help (через HELP) | Справка по команде | HELP PATH |
Системная переменная через setx | Постоянное изменение PATH для пользователя или системы | setx PATH "%PATH%;C:\Tools" |
| Системная переменная через GUI | Изменение через «Переменные среды» в свойствах системы | Панель управления → Система → Дополнительные параметры |
Примеры использования
Просмотр текущего PATH
Самый частый запрос — проверить, какие директории уже добавлены в переменную.
PATH
CMD выведет строку вида PATH=C:\Windows\system32;C:\Windows;.... Если PATH пуст, команда вернёт PATH не найден.
Временное добавление директории в PATH
Нужно запустить утилиту из нестандартного каталога только в рамках текущей сессии.
PATH %PATH%;C:\MyTools\bin
После закрытия CMD значение вернётся к прежнему. Это безопасный способ протестировать изменение перед постоянной правкой.
Временная замена всего PATH
Иногда нужно полностью подменить PATH для изолированного скрипта — чтобы использовались только указанные утилиты.
PATH C:\Scripts\tools;C:\Windows\System32
Осторожно: после этого команды из других директорий (включая стандартные) перестанут находиться автоматически.
Очистка PATH в сессии
Иногда нужно убедиться, что ни один внешний исполняемый файл не вмешается в работу скрипта.
PATH ;
После этого большинство внешних команд перестанут работать без полного пути. Актуально для отладки скриптов.
Постоянное добавление директории для текущего пользователя
Изменение через PATH в CMD действует только до закрытия окна. Для постоянного эффекта используйте setx:
setx PATH "%PATH%;C:\MyApp\bin"
Команда запишет новое значение в реестр. Изменение вступит в силу в следующей сессии CMD. Не требует прав администратора для пользовательского PATH.
Постоянное изменение системного PATH (для всех пользователей)
Запустите CMD от имени администратора, затем:
setx /M PATH "%PATH%;C:\ProgramFiles\MyApp\bin"
Ключ /M указывает изменить системную переменную. Требуются права администратора.
Просмотр PATH в PowerShell
Если нужно разбить длинный PATH на читаемый список директорий:
$env:Path -split ";"
Каждая директория выводится с новой строки — удобнее для проверки длинных значений.
Частые ошибки и решения
| Ошибка / симптом | Причина | Решение |
|---|---|---|
'программа' не является внутренней или внешней командой | Директория с программой не добавлена в PATH | Добавьте нужную директорию командой PATH %PATH%;C:\нужная\папка или через setx |
После setx изменение не применяется | setx не изменяет переменную в текущей сессии CMD | Откройте новое окно CMD или PowerShell |
setx обрезает PATH до 1024 символов | Ограничение setx на длину значения | Используйте GUI или PowerShell: [Environment]::SetEnvironmentVariable |
Случайно затёрт весь PATH командой PATH C:\dir | Форма без %PATH%; перезаписывает, а не дополняет | Восстановите из резервной копии реестра или вручную пропишите стандартные пути |
| PATH содержит пробелы — команда не находится | Пробел в пути интерпретируется как разделитель | Оберните путь в кавычки при добавлении через setx или GUI |
| Изменение системного PATH не применяется без перезагрузки | Запущенные приложения не перечитывают PATH автоматически | Перезапустите нужные приложения или выполните refreshenv (если установлен Chocolatey) |
Когда применять, а когда нет
Команда PATH в CMD подходит для быстрой временной настройки в скриптах и отладки — изменение живёт только в рамках текущей сессии. Для постоянного редактирования PATH на уровне пользователя используйте setx, на уровне системы — setx /M с правами администратора или GUI «Переменные среды». Не добавляйте в PATH директории с непроверенными файлами — это классический вектор подстановки вредоносного исполняемого файла вместо системной команды. В PowerShell аналог — переменная $env:Path, которую можно редактировать напрямую или через [Environment]::SetEnvironmentVariable().
FAQ
Как посмотреть переменную PATH в командной строке?
Наберите PATH без аргументов и нажмите Enter. CMD выведет текущее значение переменной в виде строки каталогов, разделённых точкой с запятой.
Как добавить путь в PATH не потеряв остальные директории?
Используйте форму PATH %PATH%;C:\новый\путь — конструкция %PATH% подставляет текущее значение, а новая директория добавляется в конец.
Как сделать изменение PATH постоянным?
Через CMD — командой setx PATH "%PATH%;C:\dir". Изменение запишется в реестр и будет действовать во всех новых сессиях. Для системного PATH добавьте ключ /M и запустите CMD от администратора.
Почему PATH, заданный через CMD, сбрасывается после перезапуска?
Команда PATH в CMD изменяет переменную только для текущей сессии. Реестр при этом не затрагивается. Для постоянного сохранения используйте setx или «Переменные среды» в свойствах системы.
Можно ли редактировать PATH в PowerShell?
Да. Временно: $env:Path += ";C:\dir". Постоянно для пользователя: [Environment]::SetEnvironmentVariable("PATH", $env:Path + ";C:\dir", "User"). Для системного PATH замените "User" на "Machine" и запустите PowerShell от администратора.
Что будет если PATH окажется пустым?
Большинство стандартных команд Windows перестанут находиться автоматически — CMD выдаст ошибку «не является внутренней или внешней командой». Восстановить минимальный PATH можно командой PATH C:\Windows\System32;C:\Windows.


