Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжим разбираться с командами и системными утилитами в операционной системе Windows 10, на этот раз будет разговор о переменной PATH в Windows. Всё дело в том, что системная переменная PATH дает нам возможность расширить список команд командной строки Windows, как это сделать, вы узнаете из этой публикации. Здесь мы с вами поговорим о назначении системной переменной PATH, а также разберемся с вопросом: как добавить путь к исполняемому файлу в системную переменную PATH в операционных системах Windows 10, Windows 8 и Windows 7. Этой публикацией можно пользоваться как простой инструкцией по добавлению значений в переменную PATH для Windows.
Если вам интересна тема компьютерных сетей, то в блоге уже практически закончена первая часть курса по основам компьютерных сетей, можете ознакомиться с ее содержимым. И вот здесь можно получить немного информации о самом курсе.
Что такое переменная Path и зачем она нужна в Windows. Зачем нужно добавлять путь?
Содержание статьи:
- Что такое переменная Path и зачем она нужна в Windows. Зачем нужно добавлять путь?
- Как добавить путь к программе в системную переменную Path в Windows 10 и Windows 8
- Как настроить переменную Path в Windows 7
- Выводы
PATH – это системная переменная окружения Unix-подобных (например, Linux Mint) операционных систем, а также операционных систем семейства Windows. В переменной PATH нет ничего сложно и хитрого, это обыкновенный список папок и каталогов, в которых лежат исполняемые файлы (программы). Программы, путь к исполняемым файлом которых задан в системной переменной PATH, могут быть исполнены (запущены) непосредственно из командной строки Windows и из любого места вашей файловой системы (в Linux тоже есть командная строка, но ее лучше называть эмулятор терминала).
Давайте лучше посмотрим на примере зачем нужна переменная PATH в операционных системах семейства Windows (как, впрочем, и в других семействах). Смотреть будем на примере сторонней утилиты командной строки Windows tracetcp.exe. Она у меня установлена по следующему пути: c:Program Filestracetcp. Запустим командую строку Windows и попробуем выполнить команду tracetcp.
Пробуем запустить стороннюю утилиту командной строки Windows
Обратите внимание на то, что командная строка не смогла выполнить команду tracetcp, хотя приложение и установлено на мой компьютер, проблема заключается в том, что командная строка не смогла найти исполняемый файл tracetcp.exe. Но где командная строка его искала? Она искала этот файл в текущем каталоге, то есть в данном случае в каталоге: c:UsersDell, там этого файла не оказалось, затем командная строка обратилась к переменной PATH, там она не обнаружила пути к исполняемому файлу tracetcp.exe, но обнаружила путь к папке System32, проверила, что в этой папке также нет файла tracetcp.exe и выдала нам предупреждение: «»tracetcp» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.».
Поскольку мы находились в папке, отличной от той, где находится файл tracetcp.exe, а пути в переменной PATH к этому файлу не оказалось, командная строка просто не смогла его найти, чтобы исполнить, давайте всё-таки его запустим, для этого нужно будет перейти в папку c:Program Filestracetcp при помощи команды cd (в операционных системах Linux тоже есть команда cd и работает она аналогично), а затем запустить утилиту.
Запуск исполняемого файла в командной строке Windows
Теперь командная строка Windows смогла запустить нашу утилиту, поскольку смогла найти исполняемый файл tracetcp.exe, но каждый раз переходить в папку, где лежит исполняемый файл или каждый раз указывать абсолютный путь к исполняемому файлу — это очень неудобно, будет гораздо лучше, если мы укажем путь к исполняемому файлу в переменной PATH, тогда командная строка будет самостоятельно его находить в любое время и в любом месте.
Исполняемый файл был запущен, поскольку путь до него был добавлен в системную переменную Path
На рисунке выше показано, что командная строка смогла запустить приложение из домашней папки пользователя, но это лишь благодаря тому, что я добавил путь исполняемому файлу в переменную PATH, теперь команда tracetcp будет работать из любой другой папки. Утилита tracetcp довольно простое приложение, представляющее собой один исполняемый файл — tracetcp.exe, можно было бы не прописывать путь в переменную PATH, а просто скопировать этот файл в папку System32, но устанавливать сторонние и непроверенные приложения, не требующие наличия файлов в System32, не самая хорошая и безопасная затея. В Windows лучше потратить немного времени на то, чтобы добавить путь к файлу в переменную PATH, о том как это сделать мы и поговорим ниже, рассмотрев этот процесс для операционных систем Windows 10, Windows 8 и Windows 7.
Как добавить путь к программе в системную переменную Path в Windows 10 и Windows 8
Добавление пути к программе в системную переменную PATH в операционных системах Windows 10 и Windows 8 делается по одному алгоритму, показывать я буду на примере Windows 10, так как восьмерки под рукой нет. Ранее мы уже видели, что небольшая утилита tracetcp запускалась из командной строки Windows только в том случае, если мы переходили в ту папку, в которую она установлена. Но это легко исправить, просто добавив полный путь к исполняемому файлу tracetcp.exe в системную переменную PATH. Давайте это и сделаем. Описывать процесс добавления значения в переменную PATH буду буквально по шагам и с демонстрацией скриншотов окон в Windows 10. Хотя сперва я напишу сам алгоритм, если его не хватит, то обратитесь к скриншотам ниже:
- Открываем поиск и пишем: «Система» или «Панель управления».
- Появится окно, в левом верхнем углу которого есть небольшое меню и пункт «Дополнительные параметры системы».
- Появится окно поменьше, в нижнем правом углу есть кнопка «Переменные среды…».
- Откроется окно управления переменными средами в Windows 10.
- Нас интересует переменная PATH, которая находится в разделе «Системные переменные», нажимаем на нее два раза.
- Появится окно для редактирования значений переменной PATH, чтобы добавить новое значение воспользуйтесь кнопкой «Создать».
- Подтвердите добавление нового значения в переменную PATH нажатием кнопки «Ок» и закройте все остальные окна.
- Если во время редактирования переменной PATH у вас была запущена командная строка Windows, то закройте ее и откройте заново, чтобы cmd.exe прочитала новое значение переменной PATH.
Открываем поиск Windows и в форму пишем: «Система» или «Панель управления». В результате вы должны увидеть примерно такой результат, как показано на рисунке ниже.
Используем поиск Windows, ищем по ключевому слову Система
После того, как вы нажмете на кнопку «Система», у вас появится окно, в левой части которого есть небольшое меню, самым нижним пунктом этого меню будет «Дополнительные параметры системы».
Чтобы добавить значение в переменную PATH переходим во вкладку Дополнительные параметры системы
После перехода у вас появится окно поменьше, в этом окне нас интересует вкладка «Дополнительно». В правом нижнем углу есть кнопка «Переменные среды…», на нее и нажимаем.
Нажимаем на кнопку Переменные среды
Появится еще одно окно, которое позволяет управлять системными переменными Windows 10. Обратите внимание: в это окно разделено на две части, в верхней части происходит управление переменными среды для текущего пользователя, в нижней части расположены системные переменные.
В разделе Системные перемененные ищем переменную PATH
В данном случае нас будет интересовать переменная Path, которая находится в разделе «Системные переменные», кликаем на нее два раза, у нас появляется окно, которое позволяет удалять, добавлять и редактировать значения системной переменной Path в Windows 10 и Windows 8. Нам осталось выполнить два действия: нажать на кнопку создать, в появившуюся активную форму вписать путь к файлу tracetcp.exe и подтвердить свои действия нажатием клавиши «Ок».
Дбовляем путь к исполняемому файлу в системную переменную PATH в Windows 10
Закройте все остальные окна. Если у вас была открыта командная строка, вы можете убедиться в том, что она не увидела новое значение переменной PATH, попробуйте выполнить tracetcp из корня диска C, ничего не сработает. Когда вы добавляете новый путь в переменную PATH, программе cmd.exe нужно перечитать значения этой переменной, самый простой способ заключается в том, чтобы закрыть и заново открыть командую строку. Теперь команда tracetcp работает из любой папки, аналогично можно поступать и с другими программами командной строки, которые вы устанавливаете в Windows.
Как настроить переменную Path в Windows 7
К сожалению, у меня не осталось скриншотов, на которых можно было бы продемонстрировать добавление пути в системную переменную PATH на Windows 7, поэтому здесь будет только пошаговый алгоритм добавления значения в переменную PATH:
- На вашем рабочем столе есть икнока с названием «Компьютер» или «Мой компьютер», нажмите на нее правой кнопкой мыши.
- Появится контекстное меню, в самом низу которого есть пункт «Свойства», выберете его.
- Перед вам развернется окно, в котором есть пункт меню «Дополнительные параметры системы», его и выбираем.
- В этом окне будет кнопка «Переменные среды», жмем на нее.
- У нас появляется окно управления системными переменными в Windows 7, внизу которого есть список переменных, среди которого нужно найти переменную PATH.
- Если такой переменной нет, то ее нужно создать, воспользовавшись кнопкой создать: у вас появится окно, в котором нужно будет вписать имя новой переменной, в нашем случае это Path.
- Если переменная PATH есть, то ее нужно выделить левой кнопкой мыши и нажать на кнопку изменить: появится небольшое окошко с двумя формами для ввода: верхняя форма содержит имя переменной — это Path. В нижней форме указаны абсолютные пути до исполняемых файлов различных программ, выглядет это примерно так: d:Program Filesapplication1;d:Program Filesapplication2;d:Program Filesaplication3; и так далее, чтобы добавить еще одно значение переместитесь в конец строки, убедитесь, что последним символом является «;» (именно этот символ является разделителем), впишите путь к исполняемому файлу (в моем случае он выглядел бы так: с:Program Filestracetcp) и в конце добавьте точку с запятой.
- Подтвердите свои действия нажатием кнопки «Ок» и закройте другие окна.
Как видите, настроить переменную PATH в Windows 7 не так уж и сложно.
Выводы
Вы этой статье мы разобрались с назначение системной переменной PATH и отметили, что в каждой операционной системе оно одинаковое и заключается в том, что переменная PATH является списком каталогов, в котором хранятся исполняемые файлы, если путь к исполняемому файлу есть в переменной PATH, то он может быть исполнен из командной строки операционной системы. Также мы разобрались с тем, как прописать путь к исполняемому файлу в операционных системах Windows 10, 8, 7.
В macOS есть удобная функция: если вы загружаете zip-файл, он автоматически извлекается. Вы можете отключить эту функцию, если не находите ее полезной, но большинство людей это делает. Если вы хотите воспроизвести эту же функцию в Windows 10, вы можете. Он должен работать практически с любым браузером, который вы используете, однако это также зависит от того, в какую папку вы загружаете zip-файл. Для автоматического извлечения zip-файлов вам потребуется пакетный сценарий и приложение, которое может обнаружить zip-файл и запустить сценарий.
Сценарий будет использовать команды, которые поддерживает приложение 7-zip. В основном вы используете сценарий для вызова приложения 7-zip, и ваша ОС должна иметь возможность вызывать приложение из любого места. Для этого вам нужно добавить 7-Zip к переменным среды в Windows 10. Это довольно просто сделать, и у нас есть краткое руководство о том, как это сделать, но мы резюмируем шаги здесь;
1. Откройте проводник и вставьте следующее в адресную строку. Коснитесь Enter.
Control PanelSystem and SecuritySystem
2. В открывшемся окне нажмите «Дополнительные параметры системы» слева.
3. В окне свойств системы перейдите на вкладку «Дополнительно» и нажмите «Переменные среды» внизу.
4. В окне переменных среды найдите в списке Путь. Выберите его и нажмите кнопку «Изменить».
5. В окне «Изменить переменную среды» нажмите кнопку «Обзор» и выберите папку 7zip в вашей системе. Он должен быть в следующем месте;
C:Program Files7-Zip
Пакетный скрипт
Откройте новый файл Блокнота и вставьте следующее. Этот сценарий необходимо отредактировать.
7z x -o"Path-To-Downloads-Folder*" "Path-To-Extract-File-To*.zip"
Очевидно, вам необходимо изменить приведенный выше сценарий, указав правильное расположение папки, в которую вы загружаете файлы. Ничего страшного, если вы не сохраняете файлы в загрузках по умолчанию. Чтобы найти папку с загрузками, перейдите в следующий раздел. Ниже приведен пример того, как должен выглядеть файл после его редактирования. Сохраните файл с расширением BAT и сохраните его в отдельной папке.
7z x -o "C:UsersfatiwDesktop*" "C:UsersfatiwDesktop*.zip"
Скачать Местоположение
Чтобы найти место загрузки, следуйте инструкциям для вашего конкретного браузера.
Хром
Откройте Chrome и нажмите кнопку дополнительных параметров в правом верхнем углу. Выберите в меню «Настройки». Прокрутите вниз до самого низа и разверните раздел Advanced. Прокрутите вниз до раздела Загрузки, чтобы проверить, куда вы сохраняете загруженные файлы.
Fire Fox
В Firefox щелкните значок гамбургера в правом верхнем углу и выберите в меню «Параметры». На вкладке «Параметры» прокрутите вниз до раздела «Загрузки», чтобы увидеть, где хранятся файлы.
Microsoft Edge
Откройте Edge и нажмите кнопку дополнительных параметров в правом верхнем углу. Выберите в меню Настройки. Прокрутите вниз и нажмите «Просмотреть дополнительные настройки». Прокрутите вниз до раздела Загрузки, чтобы просмотреть, в какую папку Edge сохраняет загрузки.
Триггер сценария
Последнее, что вам нужно для запуска сценария, это то, что запускает пакетный сценарий при сохранении нового zip-файла. Для этого вам понадобится приложение под названием Утилиты File Watcher. Загрузите его и распакуйте все его файлы в папку, в которую вы поместили командный файл.
Это должно выглядеть примерно так, как на скриншоте ниже.
Нажмите Ctrl + N, чтобы создать нового демона, и выполните следующие действия;
Дайте ему название, которое говорит вам, для чего он нужен, и в поле «Обзор» выберите папку, в которую вы загружаете файлы.
Перейдите на вкладку «Фильтры» и введите * .zip в строку фильтра имени основного файла.
Затем перейдите на вкладку «Процессы» и в разделе «Исполняемый файл» выберите свой командный файл.
На этой же вкладке выберите то же место загрузки в разделе Рабочий каталог процесса.
Запустите демон и загрузите zip-файл. Вы увидите окно командной строки с просьбой подтвердить, что вы хотите заменить файл. Введите Y, чтобы продолжить.
Если вы видите, что открыто несколько окон командной строки, вам нужно остановить демон, выбрать его и нажать «Свойства». Перейдите на вкладку События файловой системы и снимите отметку с события «Файлы или папка созданы», а также с событий Удаленные файлы или папки. Оставьте два других неотмеченными и снова запустите демон.
Чтобы отключить окно командной строки и автоматически разрешить извлечение файла, перейдите на вкладку «Расширенный процесс» в свойствах демона и выберите параметр «Создать без окна».
Работа с фронтендом сейчас немыслима без использования консоли (командной строки): набираем какую-либо команду с аргументами — получаем результат. Ну и для некоторых операций консоль дает выигрыш по скорости в сравнении с GUI (сравните создание файловой структуры из GUI с командой mkdir -p project/{js,fonts,scss}
).
Зачем это всё
Хочется набирать в консоли subl .
для открытия текущей директории как папки проекта или subl filename.html
для открытия файла в ST3. При этом не хочется блокировать возможность работы с консолью, как в случае с алиасом.
PATH
— это системная переменная, содержащая список директорий, в которых ОС будет искать исполняемый файл при вызове команды из консоли.
В Windows 10 можно добраться до настройки PATH
так: Этот компьютер → Свойства → Дополнительные параметры системы → Дополнительно → Переменные среды. Или вызовом «Изменение переменных среды текущего пользователя» в результатах поиска.
В окошке «Переменные среды» в блоке «Переменные среды пользователя %USERNAME%» находим строку PATH
, выделяем кликом, жмем кнопку «Изменить…» и в появившемся окошке нажимаем «СОздать» для добавления ещё одного элемента. В самом элементе нужно вписать путь к папке Sublime Text (путь к файлу subl.exe
, который должен лежать в папке программы). В моем случае получилось так:
c:Program FilesSublime Text 3
После перезапуска консоли можно наслаждаться командой subl
.
On StackOverflow and on the net in general, there are outdated and few guides on how to add a specific folder to the Windows 10 Path
environment variable of the user.
I think a complete guide for new developers with step by step instructions and screenshots could be really usefull to help them executing utilities from a Command Prompt without the need of the full path, simplifying the things.
wdmssk
331 gold badge2 silver badges4 bronze badges
asked May 30, 2017 at 21:40
For the guide below we want to add an example utility called mytool.exe
which is located in C:UsersNewFolderInPathmytool.exe
, so that everytime i want to execute the mytool utility i don’t have to specify the full path.
I used this as an example, you can replace the folder with something more realistic like the JDK bin directory located here C:Program FilesJava{JDK_VERSION}bin
to execute javac
, keytool
or everything you want.
Step 1 — Click on the
Windows
icon
Step 2 — Click on the
Settings
icon
Step 3 — Click on
System
Step 4 — Click on
About
Step 5 — Click on
System info
Step 6 — Click on
Advanced system settings
Step 7 — Click on
Environment variables...
Step 8 — Select
Path
row and then clickEdit
Step 9 — Click
New
and then clickBrowse
, then in the next panel which will open you need to select the folder you want in thePath
. For the initial premise of this guide i will add the folderC:UsersNewFolderInPath
Step 10 — Click
OK
and click everyOK
button you will encounter to close every previous windows.
Step 11 — Open a
command prompt (cmd)
and now you can execute your utility without specifying the full path.
user
4,4325 gold badges17 silver badges34 bronze badges
answered May 30, 2017 at 21:40
MatPagMatPag
39.9k14 gold badges102 silver badges110 bronze badges
3
To print each entry of Windows PATH variable on a new line, execute:
C:> echo %PATH:;=&echo.%
Set Windows PATH variable for the current session:
C:> set PATH=%PATH%;C:pathtodirectory
Set Windows PATH Permanently
Run as Administrator: The setx command is only available starting from Windows 7 and requires elevated command prompt.
Permanently add a directory to the user PATH variable:
C:> setx path "%PATH%;C:pathtodirectory"
Permanently add a directory to the system PATH variable (for all users):
C:> setx /M path "%PATH%;C:pathtodirectory"
answered Sep 29, 2021 at 22:02
HackSlashHackSlash
4,5902 gold badges19 silver badges41 bronze badges
On StackOverflow and on the net in general, there are outdated and few guides on how to add a specific folder to the Windows 10 Path
environment variable of the user.
I think a complete guide for new developers with step by step instructions and screenshots could be really usefull to help them executing utilities from a Command Prompt without the need of the full path, simplifying the things.
wdmssk
331 gold badge2 silver badges4 bronze badges
asked May 30, 2017 at 21:40
For the guide below we want to add an example utility called mytool.exe
which is located in C:UsersNewFolderInPathmytool.exe
, so that everytime i want to execute the mytool utility i don’t have to specify the full path.
I used this as an example, you can replace the folder with something more realistic like the JDK bin directory located here C:Program FilesJava{JDK_VERSION}bin
to execute javac
, keytool
or everything you want.
Step 1 — Click on the
Windows
icon
Step 2 — Click on the
Settings
icon
Step 3 — Click on
System
Step 4 — Click on
About
Step 5 — Click on
System info
Step 6 — Click on
Advanced system settings
Step 7 — Click on
Environment variables...
Step 8 — Select
Path
row and then clickEdit
Step 9 — Click
New
and then clickBrowse
, then in the next panel which will open you need to select the folder you want in thePath
. For the initial premise of this guide i will add the folderC:UsersNewFolderInPath
Step 10 — Click
OK
and click everyOK
button you will encounter to close every previous windows.
Step 11 — Open a
command prompt (cmd)
and now you can execute your utility without specifying the full path.
user
4,4325 gold badges17 silver badges34 bronze badges
answered May 30, 2017 at 21:40
MatPagMatPag
39.9k14 gold badges102 silver badges110 bronze badges
3
To print each entry of Windows PATH variable on a new line, execute:
C:> echo %PATH:;=&echo.%
Set Windows PATH variable for the current session:
C:> set PATH=%PATH%;C:pathtodirectory
Set Windows PATH Permanently
Run as Administrator: The setx command is only available starting from Windows 7 and requires elevated command prompt.
Permanently add a directory to the user PATH variable:
C:> setx path "%PATH%;C:pathtodirectory"
Permanently add a directory to the system PATH variable (for all users):
C:> setx /M path "%PATH%;C:pathtodirectory"
answered Sep 29, 2021 at 22:02
HackSlashHackSlash
4,5902 gold badges19 silver badges41 bronze badges
PATH является переменной среды и представляет собой список папок, который используется операционной системой для поиска исполняемых файлов (*.EXE). На практике, если папка добавлена в PATH, исполняемые файлы можно запускать из командной строки без указания полного пути к ним.
В рамках автоустановки Windows нас, конечно, интересует вопрос добавления папки в PATH из командной строки во время установки системы.
Эта команда добавляет указанные папки в PATH, но изменения действительны только в течении текущей командной сессии (т. е. если вы выполняете эту команду из пакетного файла, добавленные папки будут находиться в PATH только на протяжении его работы).
Добавляет указанные папки в PATH на постоянной основе. Ключ /as добавляет в системный PATH, /au — в пользовательский; /rs и /ru соответственно убирают папки из системного и пользовательского PATH. Утилита pathman входит в Windows 2000 Resource Kit, но вы можете загрузить ее по прямой ссылке
Совет. Вы можете собрать все любимые утилиты командной строки в одну папку и добавить ее в PATH. В приведенном выше примере мои утилиты собраны в %systemdrive%system32mytools.
Переменные среды, используемые в пакетных (командных) файлах, позволяют обходиться без указания абсолютных путей к директориям. Например, если нам заранее неизвестна буква системного диска, мы всегда можем использовать переменную %systemdrive%, возвращающую букву диска, на котором установлена ОС. Также, переменные применяются для оптимизации кода — многократно повторяющемуся параметру (например, разделе реестра) можно назначить короткую переменную и использовать ее. В данной статье подробно рассматриваются различные приемы работы с переменными, а также способы изменения и создания новых переменных. Теперь обо всем по порядку.
Классификация переменных среды
Справка Windows различает два типа переменных среды: системные и локальные. Системные переменные возвращают одинаковые значения для всех пользователей. К примеру, %systemdrive% — буква системного диска, и она для всех пользователей одинакова. А вот значения, возвращаемые локальными переменными, варьируются в зависимости от вошедшего в систему пользователя. Например, %userprofile% может возвращать C:Documents and SettingsТекущийПользователь, где ТекущийПользователь — название учетной записи пользователя.
Узнать, какие переменные среды в операционной системе вам доступны и какие значения в данный момент им присвоены, вам поможет команда SET, запущенная из командной строки без параметров (Пуск – Выполнить – cmd – set). В рамках данной статьи нас интересуют переменные, обозначающие путь к различным папкам (каталогам). Чуть подробнее о некоторых из них ниже:
Переменная | Тип | Описание |
%SYSTEMDRIVE% | Системная | Возвращает имя диска, содержащего корневой каталог операционной системы Windows XP/2003 (т. е. системный корневой каталог). |
%SYSTEMROOT%, %WINDIR% | Системная | Возвращает размещение корневого каталога операционной системы Windows XP/2003 |
%PATH% | Системная | Указывает путь поиска для исполняемых файлов. |
%PROGRAMFILES% | Системная | Указывает путь к каталогу установки программ (Program Files) |
%COMMONPROGRAMFILES% | Системная | Указывает путь к общему каталогу программ (Program FilesCommon Files). |
%TEMP% и %TMP% | Системная и пользовательская | Возвращает временные папки, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP. |
%USERPROFILE% | Локальная | Возвращает размещение профиля для текущего пользователя. |
%ALLUSERSPROFILE% | Локальная | Возвращает размещение профиля «All Users». |
%CD% | Локальная | Возвращает путь к текущей папке. |
%APPDATA% | Локальная | Возвращает используемое по умолчанию размещение данных приложений. |
Использование переменных в пакетных файлах
Начнем с простенького примера:
DEL /F /Q «%AllUsersProfile%Главное менюАктивация Windows.lnk»
DEL /F /Q «%AllUsersProfile%Главное менюWindowsUpdate.lnk» DEL /F /Q «%systemroot%system32*.scr»
В этом примере я удаляю вышеуказанные ярлыки, которые маячат перед глазами в меню Пуск, используя переменную %AllUsersProfile%, а также все файлы с расширением SCR из директории Windowssystem32, используя переменную %SystemRoot%. Вместо DEL /F /Q, как вы понимаете, может быть все что угодно: от команды копирования COPY до команды запуска установки нужного нам приложения со всеми параметрами командной строки, если это потребуется.
Во всех командах я специально использовал «кавычки» – это не случайно. Весь путь, включая переменные, надо заключать в кавычки, если вы используете пути, содержащие пробелы. Даже если сама переменная кавычек не содержит, после ее разбора системой в пути могут появится пробелы (например, %ProgramFiles% в C:Program Files). В любом случае кавычки лучше использовать – это является хорошим тоном оформления командных файлов.
Как задать свои переменные
Разобранный выше пример использовал уже существующие переменные среды. И вы, вероятно, обратили внимание на символы процентов, окружающие названия переменных. Эти символы нужны для того, чтобы разрешить подстановку значений переменной в командной строке или в пакетном файле. Символы процентов указывают на то, что Cmd.exe должна обратиться к значениям переменных, а не делать посимвольное сравнение. Ниже вы увидите, как это работает. Задать свои переменные в пакетном файле можно командой SET.
Команда SET
Вы можете задать в командном файле свои переменные при помощи все той же команды SET.
Чтобы добавить переменную, введите в командной строке:
set имя_переменной=значение
Чтобы отобразить переменную, введите в командной строке:
set имя_переменной
Чтобы удалить переменную, введите в командной строке:
set имя_переменной=
Например,
SET mydir=D:FilesWork
задает переменную mydir, которая будет возвращать путь к указанной папке. Подробнее о команде вы можете прочитать из set /?.
Важное примечание: переменные, задаваемые командой set, действуют лишь на протяжении командной сессии, в которой они были заданы.
Эти переменные могут быть созданы, к примеру, для любых путей, надо лишь задать или найти алгоритм присвоения переменной в каждой частной ситуации, пользуясь готовыми примерами или создавая свои на их основе. Как правило, такие переменные создаются в текущей сессии командными файлами с помощью некоторых операторов.
Пример назначения переменных в файле RunOnceEx.cmd, импортирующем параметры в реестр
@echo off
SET KEY=HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx
SET i=100
REG ADD %KEY% /V TITLE /D «Installing Applications» /f
REG ADD %KEY%%i% /VE /D «WinRar 3.51» /f
REG ADD %KEY%%i% /V 1 /D «%systemdrive%installSoftwareWinRar.exe /s» /f
REG ADD %KEY%%i% /V 2 /D «REGEDIT /S %systemdrive%installSoftwarerar_set.reg /s» /f
SET /A i+=1
В данном скрипте командой SET задаются две переменных — %i% и %KEY%. Обратите внимание, что задаются они без символов процентов, а вот для обращения к ним %% уже нужны. Переменная %KEY% служит для упрощения и оптимизации кода. Она остается неизменной на протяжении текущей командной сессии, что избавляет от необходимости каждый раз включать в код раздел реестра. Каждый раз, когда в коде встречается %KEY%, будет происходить ее замена на HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx. А вот %i% служит для последовательной нумерации разделов реестра. При начальном значении 100 переменная увеличивается на единицу при помощи команды SET /A i+=1 после каждого блока команд, что дает последовательность 100, 101, 102 и т.д. Таким образом, строка
REG ADD %KEY%%i% /V 1 /D «%systemdrive%installSoftwareWinRar.exe /s» /f
на самом деле отработает так
REG ADD HKLMSOFTWAREMicrosoftWindowsCurrentVersionRunOnceEx100 /V 1 /D «C:installSoftwareWinRar.exe /s» /f
Обратите внимание, что во фрагменте файла также используется системная переменная %systemdrive%, которая соответствует букве системного диска.
Пример назначения переменных в командном файле, устанавливающем приложение с CD:
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:WIN51 set CDROM=%%i:
start /wait “%CDROM%INSTALLDVDToolsNBRomNero.exe”
В этом примере для всех перечисленных дисков происходит поиск определенного файла (WIN51). В случае его обнаружения на одном из дисков, последнему присваивается переменная %CDROM%, а далее уже происходит установка программного обеспечения с использованием пути, заданного созданной переменной.
Изменение переменных среды и добавление собственных переменных
Как уже было сказано выше, действие переменных, заданных командой set, ограничивается текущей командной сессией. Если вы хотите получить из временной переменной системную или пользовательскую, то надо ее прописать в реестр. Сделать это тоже можно различными способами.
Утилита setenv
Утилита работает из командной строки (сайт, загрузить). Работать с утилитой очень просто (setenv /?).
Пользовательские настройки: setenv -u имя_переменной значение
Системные настройки: setenv -m имя_переменной значение
Настройки Default User: setenv -d имя_переменной значение
Настройки текущего
пользовательского сеанса: setenv -v имя_переменной значение
Допустим, если нужно получить переменную %temp% еще на стадии установки, то можно это проделать из cmdlines.txt, например:
:: Creating and Setting Temp folder…
md %systemdrive%Temp
setenv -u Temp %systemdrive%Temp
setenv -u Tmp %systemdrive%Temp
Утилита удобна тем, что после задания переменной ею можно пользоваться сразу. Ну почти сразу — в следующей командной сессии. Чтобы использовать ее в текущей сессии, можно задействовать старую знакомую команду set:
:: Creating #EgOrus# var
set EgOrus=D:EgOrus
setenv -u EgOrus %EgOrus%
Импорт параметров в реестр
Если же пойти путем внесения изменений в реестр после первого входа в систему, то переменные начнут «работать» только после перезагрузки или завершения пользовательского сеанса. Конечно, в процессе автоустановки можно импортировать желаемые параметры на Т-12 (см. статью Твики реестра) и обойти данную проблему. Если же вы не собираетесь использовать назначенную переменную в текущем пользовательском сеансе, то импорт в реестр вас тоже может устроить. Процесс импорта REG-файлов описывать повторно не буду, а рассмотрю команду REG ADD на конкретном примере.
Допустим, вы заинтересованы иметь в системе переменную %CDROM% на постоянной основе и установить ее в процессе установки приложений с CD. Следуя коду, приведенному выше, нужно после определения переменной назначить ее системной.
for %%i in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do if exist %%i:WIN51 set CDROM=%%i:
REG ADD «HKEY_LOCAL_MACHINESYSTEMCurrentControlSetControlSession ManagerEnvironment» /v cdrom /d %CDROM% /f
После нахождения файла WIN51 диску, на котором он был найден, присваивается локальная переменная %CDROM%, которая тут же и назначается в виде постоянной системной переменной посредством импорта в реестр. Этот метод предложил в одной из тем на конференции Oszone Sanja Alone. Заодно вы узнали. где в реестре хранятся настройки системных переменных. Настройки пользовательских переменных хранятся в HKCUEnvironment. Пути, возвращаемые переменными %PROGRAMFILES% и %COMMONPROGRAMFILES%, можно посмотреть в параметрах ProgramFilesDir и CommonFilesDir в HKLMSOFTWAREMicrosoftWindowsCurrentVersion, но менять их там не следует. Каталоги установки программ (отличные от %SystemDrive%Program Files) нужно конфигурировать через файл ответов.
Резюме
Командная оболочка Windows (cmd.exe) — это весьма мощный инструмент работы с системой. При помощи пакетных файлов можно автоматизировать изрядное количество задач, и именно поэтому они часто используются для автоматической установки Windows. Умелое использование переменных в пакетных файлах позволяет решать широкий спектр вопросов. Работа с командной оболочкой становится более эффективной и одновременно упрощается код пакетных файлов. Другие примеры использования переменных вы можете найти на страницах сайта или форума. Все примеры, использованные в этой статье, взяты из скриптов участников форума, за что им большое спасибо.
Терминология
Командная оболочка — это отдельный программный продукт, который обеспечивает прямую связь между пользователем и операционной системой. Текстовый пользовательский интерфейс командной строки предоставляет среду, в которой выполняются приложения и служебные программы с текстовым интерфейсом.
cmd.exe — интерпретатор команд, который командная оболочка ОС Windows использует для перевода введенной команды в формат, понятный системе. К тексту ^
Командная сессия может инициироваться как запуском cmd.exe, так и запуском пакетного файла. Иными словами создается текущая командная оболочка. Соответственно выход из этой оболочки (к примеру, окончание работы пакетного файла) завершает командную сессию. К тексту ^
Пользовательский сеанс (пользовательская сессия) начинается с момента входа пользователя в систему (log on) и завершается при выходе (log off). К тексту ^
On StackOverflow and on the net in general, there are outdated and few guides on how to add a specific folder to the Windows 10 Path
environment variable of the user.
I think a complete guide for new developers with step by step instructions and screenshots could be really usefull to help them executing utilities from a Command Prompt without the need of the full path, simplifying the things.
wdmssk
331 gold badge2 silver badges4 bronze badges
asked May 30, 2017 at 21:40
For the guide below we want to add an example utility called mytool.exe
which is located in C:UsersNewFolderInPathmytool.exe
, so that everytime i want to execute the mytool utility i don’t have to specify the full path.
I used this as an example, you can replace the folder with something more realistic like the JDK bin directory located here C:Program FilesJava{JDK_VERSION}bin
to execute javac
, keytool
or everything you want.
Step 1 — Click on the
Windows
icon
Step 2 — Click on the
Settings
icon
Step 3 — Click on
System
Step 4 — Click on
About
Step 5 — Click on
System info
Step 6 — Click on
Advanced system settings
Step 7 — Click on
Environment variables...
Step 8 — Select
Path
row and then clickEdit
Step 9 — Click
New
and then clickBrowse
, then in the next panel which will open you need to select the folder you want in thePath
. For the initial premise of this guide i will add the folderC:UsersNewFolderInPath
Step 10 — Click
OK
and click everyOK
button you will encounter to close every previous windows.
Step 11 — Open a
command prompt (cmd)
and now you can execute your utility without specifying the full path.
user
4,4325 gold badges17 silver badges34 bronze badges
answered May 30, 2017 at 21:40
MatPagMatPag
39.9k14 gold badges102 silver badges110 bronze badges
3
To print each entry of Windows PATH variable on a new line, execute:
C:> echo %PATH:;=&echo.%
Set Windows PATH variable for the current session:
C:> set PATH=%PATH%;C:pathtodirectory
Set Windows PATH Permanently
Run as Administrator: The setx command is only available starting from Windows 7 and requires elevated command prompt.
Permanently add a directory to the user PATH variable:
C:> setx path "%PATH%;C:pathtodirectory"
Permanently add a directory to the system PATH variable (for all users):
C:> setx /M path "%PATH%;C:pathtodirectory"
answered Sep 29, 2021 at 22:02
HackSlashHackSlash
4,5902 gold badges19 silver badges41 bronze badges
-
#1
Как добавить путь в переменную Path ?
Что это?
PATH является переменной среды и представляет собой список папок, который используется операционной системой для поиска исполняемых файлов (*.EXE).
На практике, если папка добавлена в PATH, исполняемые файлы можно запускать из командной строки без указания полного пути к ним.
Зачем это?
Например, Вы установили архиватор WinRAR. Чтобы заархивировать файл консольной утилитой Rar.exe нужно:
- задать полный путь к исполняемому файлу:
"c:program fileswinrarrar.exe" a file.txt
либо
. - скопировать утилиту rar.exe в папку с бат-файлом (или WindowsSystem32), тогда путь указывать не нужно:либо
. - добавить путь расположения утилиты rar.exe в переменную Path. Код бат-файла остается таким же.
Список путей в Path
Для того чтобы посмотреть список папок, входящих в переменную PATH, просто наберите PATH в командной строке.
Как добавить?
Добавить папку в PATH можно:
1) при помощи графического интерфейса Windows.
Открыть окно свойств системы (WIN+PAUSE), на вкладке «Дополнительно» нажать кнопку «Переменные среды», в разделе «Системные переменные» выделить «PATH» и нажать кнопку «Изменить».
Через точку с запятой прописать путь к папке без кавычек, как в примере:
2) воспользоваться таким БАТ-файлом:
@echo off
set Key=HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment
:: Здесь прописываем полный путь к папке, которую следует добавить к Path
set FolderToAdd=c:program fileswinrar
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.
В конце кода нужно дописать:
P.S. Здесь же можно хранить и пользовательские переменные, которые необходимо сделать глобальными.
Например, чтобы создать переменную с именем MyVar и значением MyValue,
выполните команду:
Reg Add "HKEY_LOCAL_MACHINESYSTEMControlSet001ControlSession ManagerEnvironment" /v MyVar /t REG_SZ /d "MyValue" /f
Последнее редактирование: 2 Ноя 2013
-
#2
Как это использовать?
Допустим мы добавили
C:Program FilesWinrar
к путям «Path»,
В этой папке имеем:
Какие преимущества получаем?
Можем открывать любой файл из этой папки, просто введя его имя
(для исполняемых файлов EXE, Com, Bat… расширение имени указывать не обязательно).
Примеры:
1) Вводим имя в поисковую строку меню «ПУСК» (для ОС >= Vista)
Нажимаем ПУСК (в Windows 8 — нажимаем Ctrl + Esc, или клавишу «Win» («флажок»))
Вводим слово
winrar
Получаем подсказку, какие имена найдены.
Затем можно нажать кнопку ENTER, либо мышкой нажать на найденный интересующий нас файл.
2) ПУСК -> Выполнить (для ОС >= Vista нажимаем комбинацию Win + R)
Откроется файл справки. Так можно открывать любой файл.
3) Через командную строку.
Если у Вас уже была открыта командная строка еще перед добавлением пути к переменной Path,
следует закрыть ее и открыть новую CMD, т.к. старая все еще работает со своим окружением,
полученным из системы в момент ее открытия.
4) Через реестр:
например, добавив в
HKEY_CURRENT_USERSOFTWAREMicrosoftWindowsCurrentVersionRun
параметр с именем исполняемого файла без указания полного пути,
программа автоматически запустится при загрузке ОС.
Последнее редактирование: 1 Янв 2014
-
#3
открыть новую CMD, т.к. старая все еще работает со своим окружением
От себя добавлю. Очень важно из какой программы запускается батник или cmd. После изменений переменной PATH только explorer.exe может запустить программу так, чтобы запускаемая программа (батник или CMD) получила свежие данные о переменных окружения (и то не во всех случаях). При запуске из FAR, Total Commander и т.п. запускаемая программа получает переменные среды запускающей программы.
-
#4
Батник для добавления нового пути в переменную окружения Path.
Для систем Vista и выше запускать с повышенными привилегиями.
Каталог указывать в 4-й строчке кода:
@echo off
SetLocal EnableExtensions EnableDelayedExpansion
:: Указываем добавляемый каталог
set FolderToAdd=c:my special soft
:: Получаем текущее значение Path
set Key=HKLMSYSTEMCurrentControlSetControlSession ManagerEnvironment
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.