Раздел реестра App Paths
Действительно, не указывая полный путь, можно запустить некоторые стандартные программы Windows из окна «Выполнить», но не из командной строки. Помимо проигрывателя Windows Media, это, например, Paint (mspaint) и Wordpad (wordpad). То же самое верно и для приложений MS Office – проверьте команду excel или winword!
Разница между окном «Выполнить» и командной строкой заключается в том, что оболочка Windows (explorer) обладает более широкими возможностями, чем консольный интерпретатор команд. В данном случае все дело в функции ShellExecuteEx, которой снабжена оболочка. Когда вы запускаете исполняемый файл без указания полного пути к нему, функция выполняет поиск в:
- текущей папке
- папках Windows и System32
- разделе реестра
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths
Как работает раздел App Paths
Давайте посмотрим на работу App Paths на примере Windows Media Player.
Здесь:
- создан подраздел с псевдонимом исполняемого файла (в данном случае – это wmplayer.exe)
- в параметре По умолчанию указан полный путь к файлу. Если в пути к файлу используется переменная, параметр должен быть расширяемым строковым (REG_EXPAND_SZ). Указывая абсолютный путь, можно обойтись обычным строковым параметром (REG_SZ).
- в параметре Path задана рабочая папка программы
Работает это очень просто. Вы вводите псевдоним файла в окне «Выполнить» или адресной строке проводника, а система автоматически смотрит в указанном пути.
Как ускорить свою работу с помощью App Paths
Этим разделом реестра можно пользоваться для быстрого запуска программ, ярлыки которых не нужны вам в панели задач или на рабочем столе. Например, для поиска и замены в текстовых файлах я применяю программу BKReplacem (replacem.exe), у которой своя папка внутри папки PortableSoft. В разделе App Paths я создал подраздел bkr.exe и указал полный путь к утилите. Теперь ее запуск сводится к выполнению bkr в окне «Выполнить».
Кстати, не забывайте заключать в кавычки пути, содержащие пробелы. И, надеюсь, вы уже догадались, что можно сократить команду до одной буквы. Продолжая этот пример, я мог бы создать подраздел b.exe. Вообще, у программы может быть сколько угодно псевдонимов, как вы увидите чуть ниже.
Еще одно применение, которое я нашел для App Paths, это запуск cmd.exe с полными правами. Я давно обхожусь без запроса UAC, благодаря . Создав подраздел cmda.exe, я указал в нем путь к командному файлу, выполняющему задание.
В нем всего одна строка:
schtasks /run /tn CMD_Admin
Теперь достаточно ввести в окно «Выполнить» команду cmda, чтобы открыть командную строку от имени администратора.
Что интересного можно найти в разделе App Paths
Во-первых, я уверен, что вы найдете там многие из установленных у вас программ. Вместо того чтобы прописывать путь к своей папке в переменную PATH, программы регистрируют свой исполняемый файл в разделе App Paths, следуя рекомендациям Microsoft.
Во-вторых, там есть подразделы WORDPAD.EXE и WRITE.EXE, причем оба ведут к файлу wordpad.exe.
Программа Write, входившая в состав первых операционных систем Microsoft, в Windows 95 была заменена на WordPad. Вы также найдете подраздел pbrush.exe, ссылающийся на mspaint, лежащий в System32.
Программ Write и Paintbrush нет в Windows уже лет 15, однако упоминание о них до сих пор содержится в системе! И это подводит нас к разговору о том, когда и зачем в Windows ввели раздел App Paths.
История App Paths
Раздел App Paths появился в Windows 95 в качестве противоядия от засорения пути PATH, который задавался в файле autoexec.bat. Программы традиционно добавляли туда пути к своим папкам, как это до сих пор иногда делается с одноименной переменной среды. При загрузке системы файл считывался, а программы оказывались в системном пути.
Основная проблема для разработчиков состояла в том, что найти в autoexec.bat правильную строку SET PATH было нетривиальной задачей. При этом нельзя было вставлять свою строку в начало файла, поскольку другая команда ниже могла переопределить переменную.
Кроме того, добавлять путь в PATH ради того чтобы указать Windows на одну единственную программу, было не рационально, сродни стрельбе из пушки по воробьям. Вот тогда разработчики Windows 95 и придумали решение с разделом реестра, позволяющим указывать пути к конкретным исполняемым файлам.
Теоретически, какая-нибудь древняя программа может полагаться на своих ровесниц, наследницы которых уже сменили имя или расположение. Чтобы старые приложения не ломались, используется раздел реестра App Paths.
Что такое переменные среды системы и пользователя
Очень похоже на то, как работает реестр в Window, у нас есть переменные среды системы и пользователя. Системные переменные являются общесистемными и не меняются от пользователя к пользователю
Принимая во внимание, что пользовательские среды настраиваются по-разному от пользователя к пользователю. Вы можете добавить свои переменные под пользователем, чтобы другие пользователи не влияли на них.
Просто для вашей информации, так как мы обсуждаем эту тему подробно. Системные переменные оцениваются перед пользовательскими переменными . Таким образом, если есть некоторые пользовательские переменные с тем же именем, что и системные переменные, тогда будут рассматриваться пользовательские переменные. Переменная пути генерируется другим способом. Эффективным путем будет переменная «Пользовательский путь», добавляемая к переменной «Системный путь». Таким образом, порядок записей будет системных записей, за которыми следуют пользовательские записи.
Как добавить и изменить переменные среды
Небольшое предупреждение, прежде чем мы пойдем глубже. Создайте точку восстановления системы и постарайтесь не вмешиваться в существующие параметры, настроенные для вашей системы. Пока, если вы не уверены в своих действиях. Чтобы открыть окно «Переменные среды», выполните следующие действия.
- Щелкните правой кнопкой мыши значок «Этот ПК» и выберите «Свойства».
- Теперь в этом окне выберите «Расширенные настройки системы» в левой части.
- Нажмите последнюю кнопку с надписью «Переменные среды», чтобы открыть наше предназначенное окно.
Как только вы откроете это, вы сможете просматривать пользовательские и системные переменные отдельно. Имя переменной находится в первом столбце, а ее значение – во втором. Соответствующие кнопки под таблицей позволяют вам «Добавить», «Редактировать» и «Удалить» эти переменные.
Использование переменной Path
Путь является наиболее используемой переменной среды. Как я уже упоминал, он указывает на каталоги, которые содержат исполняемые файлы. После правильной настройки переменной Path вы можете использовать эти исполняемые файлы из любой точки системы. Давайте попробуем понять это на примере. Откройте окно переменных среды и найдите «Path» в системных переменных.
Нажмите «Изменить», а затем нажмите «Новый», не играя с другими элементами управления прямо сейчас. Теперь нажмите кнопку обзора и выберите папку, в которой находится нужный исполняемый файл. Нажмите «ОК» и сохраните все. Я добавил исполняемый файл «Код Visual Studio» в путь.
Теперь, чтобы запустить ваше приложение, откройте командную строку и введите имя исполняемого файла, который был в папке.Вы можете предоставить дополнительные аргументы, если программа поддерживает это. Программа будет запускаться из командной строки, фактически не находясь в каталоге, из которого вы выполнили команду. В этом прелесть переменной Path .
Список всех переменных среды
Откройте командную строку, введите SET и нажмите «Ввести». Будет отображен весь список переменных с их текущими значениями, и вы можете обратиться к нему для внесения изменений в свой компьютер.
Динамические переменные среды
В отличие от обычных переменных, динамические переменные среды предоставляются CMD, а не системой. Вы не можете изменять значения этих переменных, и они расширяются до различных дискретных значений при запросе. Мы обычно используем эти переменные для пакетной обработки, и они не хранятся в среде. Даже команда «SET» не покажет эти переменные. Некоторые из динамических переменных среды:
Некоторые из динамических переменных среды:
- % CD% . При вводе этой команды вы получите текущий каталог, в котором вы работаете.
- % DATE% . Эта переменная будет отображать текущую дату в соответствии с настройками формата даты.
- % TIME% . Точно так же отображается текущее время в соответствии с настройками формата времени.
- % RANDOM% : эта переменная печатает случайное число .
- % ERRORLEVEL% : определяет уровень ошибки, установленный последней выполняемой командой.
- % CMDEXTVERSION% : эта переменная распространяется на версии расширений командной строки.
Это было в значительной степени о системных и пользовательских переменных среды в Windows. В Windows есть гораздо больше переменных – не забудьте проверить их с помощью команды «SET».
СОВЕТ . Rapid Environment Editor – это мощный редактор переменных среды для Windows.
Работа с переменными
Чтобы получить доступ к значению переменной, необходимо поставить знак % перед её названием и после него, например: echo %PROCESSOR_ARCHITECTURE%. (Используйте программу echo если вы хотите увидеть значение переменной. Echo выводит на стандартный вывод все, что вы передадите ей в командной строке. )
Чтобы установить значение переменной: SET TEMP=C:\TEMP
Кроме того, с переменными среды можно работать, нажав кнопку «Переменные среды» на вкладке «Дополнительно» в диалоговом окне «Свойства системы» (контекстное меню значка «Мой компьютер» → пункт «Свойства»).
В Windows к переменным окружения можно обращаться из командной строки заключая имя переменной в знаки «%».
В качестве примера можно привести переменную %APPDATA%, которая указывает путь до папки, в которой хранятся настройки некоторых программ текущего пользователя. Обычно это C:\Documents And Settings\Пользователь\Application Data, где Пользователь это изменяемое значение. Для каждой учетной записи используется своё имя пользователя.
Чтобы каждый раз не узнавать имя учетной записи текущего пользователя и не подставлять в путь к папке Application Data соответствующее значение и используется переменная окружения %APPDATA%.
Это позволяет, к примеру, быстро открывать папку Application Data, для этого в меню «Пуск →Найти» или в «Пуск →Выполнить» введите %APPDATA% и нажмите клавишу Enter.
Чтобы получить значение переменной окружения через командную строку, используется команда echo, например: echo %PROCESSOR_ARCHITECTURE%
Введенная в командной строке, эта комбинация отобразит архитектуру процессора текущего компьютера. Возможен один из трёх вариантов: x86, IA64, AMD64.
Некоторые переменные среды
Список переменных среды Windows можно узнать, набрав в командной строке: set или нажав кнопку «Переменные среды» на вкладке «Дополнительно» в диалоговом окне «Свойства системы» («Мой компьютер»→»Свойства»).
Имя | Назначение | Пример значения |
%ALLUSERSPROFILE% | Указывает путь до папки общих документов и настроек, общих для всех пользователей. | C:\Documents And Settings\All Users |
%APPDATA% | Указывает путь до папки, в которой хранятся настройки некоторых программ текущего пользователя. | C:\Documents And Settings\Администратор\Application Data |
%CLIENTNAME% | Переменная определена только в среде удаленного подключения к рабочему столу. Хранит имя компьютера (%COMPUTERNAME%) клиента удаленного доступа. | MyPC |
%COMMONPROGRAMFILES% | Указывает путь до папки, в которой хранятся общие для установленных программ файлы. | C:\Program Files\Common Files |
%COMPUTERNAME% | Хранит имя компьютера в локальной сети. | Начальник |
%COMSPEC% | Хранит путь до текущего командного интерпретатора Windows. | C:\Windows\System32\cmd.exe |
%HOMEDRIVE%, %SYSTEMDRIVE% | Хранит имя системного диска. | C: |
%HOMEPATH%, %USERPROFILE% | Хранит путь до домашней папки пользователя | C:\Documents And Settings\Администратор |
%WINDIR% | Хранит путь до папки, в которую установлена Windows | C:\Windows |
%SYSTEMROOT% | Хранит путь до системной папки (где хранится ядро и т. п.) | C:\Windows |
%PROGRAMFILES% | Хранит путь до папки с установленными приложениями | C:\Program Files |
%SESSIONNAME% | Хранит имя пользовательского сеанса. В локальном сеансе имеет значение Console, в среде удаленного подключения к рабочему столу протоколом TCP/IP имеет вид RDP-Tcp#<номер сеанса>. | Console, RDP-Tcp#1 |
Переменные среды в Windows 10 — Как редактировать?
Как изменять, удалять или создавать переменные среды в Windows 10
setx /m MYWEBPC «C:\mywebpc»
setx MYWEBPC «C:\News\»
setx /m MYWEBPC «C:\News»
setx MYWEBPC «C:\News;C:\mywebpc\»
setx /m MYWEBPC «C:\News\;C\mywebpc\»
setx MYWEBPC «»
setx /m MYWEBPC «»
REG delete «HKCU\Environment» /F /V «MYWEBPC»
REG delete «HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment» /F /V «MYWEBPC»
- Как изменить системные звуки в Windows 10
- Как удалить содержимое временных файлов папки Temp в Windows 10
- Как удалить папку Windows.old
- Как создать не удаляемую папку в Windows 10
- Как создать и изменить размер раздела диска в Windows 10
Загрузка комментариев Канал Чат
Учение основ cmd(bat) (ДЛЯ НОВИЧКОВ)
Хэллоу пикабушник. Я хочу, чтобы ты понял весь программный язык cmd(bat) на понятном языке. Ну, давай приступим?
Для начала Разберем, что такое cmd(bat) и с чем его едят?
С этим мы разобрались, теперь, зачем он нужен? Дело в том, что некоторые вещи можно быстрее выполнить в командной строке, а некоторые настройки в принципе отсутствуют в графическом интерфейсе пользователя. Так же следует иметь в виду, что до сих пор существуют утилиты, не имеющие графического интерфейса, а иногда он оказывается недоступен, например из-за сбоя.
Как открыть командную сроку(cmd.exe)
И так, давайте создадим на рабочем столе текстовый документ, а далее впишем в него
Для вывода сообщения в BAT файлах используется команда echo: Вывод сообщений и переключение режима отображения команд на экране. ECHO ECHO Ввод ECHO без параметров позволяет выяснить текущий режим отображения команд.
В данном случае напишем @Echo off
После напишем такую строку A: Что это такое? Это так сказать, строка, позволяющая делать оборот(обратно выполнять функции,команды после этой строки)
Далее после A: напишем, echo HELLO MY FRIEND (тут вышла ошибочка, пишем :A, а не A: )
echo — команда, позволяющая показывать сообщения, в моем случае это «HELLO MY FRIEND«
После давайте напишем команду, которая будет открывать окно, в данном случае это команда «Start»
Команда START — запуск приложения в новом окне
Команда START позволяет запускать приложения в отдельном окне, с возможностью указания некоторых параметров их выполнения.
Формат командной строки:
START [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | REALTIME| /ABOVENORMAL | /BELOWNORMAL] [команда/программа]
Параметры командной строки:
«заголовок» — заголовок окна. Обязательно в двойных кавычках.
путь — рабочий каталог.
B — запуск приложения без создания нового окна с отключением обработки сочетания клавиш CTRL+C. Если приложение не обрабатывает сочетание клавиш CTRL+C самостоятельно, единственным способом его прерывания является использование сочетания клавиш CTRL+Break.
I — Новой средой станет исходная среда, переданная cmd.exe, а не текущая среда.
MIN — Запуск команды/программы в свернутом окне.
MAX — Запуск команды/программы в развернутом окне.
SEPARATE — Запуск 16-разрядной программы Windows в отдельной области памяти.
SHARED — Запуск 16-разрядной программы Windows в общей области памяти.
LOW — Запуск приложения с приоритетом IDLE (самый низкий приоритет).
NORMAL — Запуск приложения с приоритетом NORMAL.
HIGH — Запуск приложения с приоритетом HIGH.
REALTIME — Запуск приложения с приоритетом REALTIME (самый высокий приоритет).
WAIT — Запуск приложения с ожиданием его завершения.
ABOVENORMAL — Запуск приложения с классом приоритета ABOVENORMAL (выше стандартного)
BELOWNORMAL — Запуск приложения с классом приоритета BELOWNORMAL (ниже стандартного)
команда/программа — Если это внутренняя команда cmd.exe или пакетный файл, обработчик команд (cmd.exe) запускается с ключом /K. Это означает, что окно не будет закрыто после завершения команды. Если это не внутренняя команда cmd.exe и не пакетный файл, значит, это программа, которая будет запущена в графическом или текстовом окне.
Но давайте напишем start http://google.com — при данное команде, будет открываться гугл.
После напишем echo I KILLED YOUR WINDOWS (Мини шуточка пхпх) — команда которая будет выводить текст. И на последок пишем goto A (для работы круга)
Вот как все это должно выглядеть
Нажимаем «Файл» «Сохранить как» Рабочий стол
Тип файла выбираем «Все файлы» и к названии вашего файла(в моем случае пикабу) приписываем .bat
Все, теперь открываем и проверяем!
Теперь можем видеть такую картину:
в вк вы можете попросить меня скинуть вам немножко жоще батник xD
Что такое переменная окружения?
Переменная окружения (Environment variables) — работает как алияс для дисков, файлов и различных других путей в ОС Windows.
При просмотре различных bat-файлов или информационных статей в интернете, можно столкнуться с конструкциями вида , и так далее. Которые могут вызвать замешательство, т.к. не очень понятно что значит указанный путь. Поэтому в данной статье мы покажем доступные переменные окружения для различных версий ОС Windows.
Примечания к статье:
C:\ — это тот диск, на который установлена ОС Windows (т.е. это системный диск). Если у вас ОС Windows установлена на другой диск, то и путь будет другим. Например, если Windows установлена на диск D:\, то и все пути у переменных будут начинаться с D:\Username — это текущее имя пользователя.
Переменная PATH и программы-утилиты
Не обязательно добавлять в переменную PATH пути ко всем директориям, в которых находятся исполняемые файлы на вашем компьютере. Скорее всего большинство программ вы запускаете “через меню старт”. На этот способ запуска переменная PATH никакого влияния не оказывает
Её важно настроить так, чтобы можно было быстро и удобно запускать программы из консоли
Например, в эту переменную обычно включается путь к “стандартным” местам, где расположены различные программы-утилиты. В операционной системе Windows это директория C:Windowssystem32 , в операционных системах Linux и MacOS директория /usr/bin .
Именно благодаря этому мы можем, например, в консоли Windows использовать утилиту find для поиска файлов или утилиту telnet для установления удалённого соединения по одноимённому протоколу, просто указывая их имя, а не полный путь c:Windowssystem32telnet.exe .
Когда у вас появляется новая программа-утилита, возникает вопрос – куда её поместить? С одной стороны, её можно положить в C:Windowssystem32 или /usr/bin . Но если вы не любите “засорять” стандартные директории, тогда сделайте какую-нибудь специальную директорию, складывайте все такие программы в неё, и добавьте путь к этой директории в переменную среды PATH .
Как изменить переменные среды в Windows 7
Общие сведения
- Переменная PATH — это системная переменная, которую операционная система использует для того, чтобы найти нужные исполняемые объекты в командной строке или окне терминала.
- Системную переменную PATH можно задать с помощью системной утилиты в панели управления Windows или с помощью файла запуска командной оболочки Linux и Solaris.
- На компьютерах под управлением Windows или Mac OS X внесение изменений в системную переменную PATH обычно не требуется.
Windows
Windows 10 и Windows 8
- В строке “Поиск” выполните поиск: Система (Панель управления)
- Нажмите на ссылку Дополнительные параметры системы.
- Нажмите Переменные среды. В разделе Переменные среды выберите переменную среды PATH . Нажмите Изменить. Если переменной PATH не существует, нажмите Создать .
- В окне Изменение системной переменной (или Новая системная переменная) укажите значение переменной среды PATH . Нажмите ОК. Закройте остальные открытые окна, нажимая ОК.
- Откройте заново окно командной строки и выполните код java.
Windows 7
- На рабочем столе правой кнопкой нажмите на значок Компьютер.
- В контекстном меню выберите Свойства.
- Нажмите на ссылку Дополнительные параметры системы.
- Нажмите Переменные среды. В разделе Переменные среды выберите переменную среды PATH . Нажмите Изменить. Если переменной PATH не существует, нажмите Создать .
- В окне Изменение системной переменной (или Новая системная переменная) укажите значение переменной среды PATH . Нажмите ОК. Закройте остальные открытые окна, нажимая ОК.
- Откройте заново окно командной строки и выполните код java.
Windows XP
- Нажмите Пуск, выберите Панель управления, дважды нажмите на Система и выберите вкладку Дополнительно.
- Нажмите Переменные среды. В разделе Переменные среды выберите переменную среды PATH . Нажмите Изменить. Если переменной PATH не существует, нажмите Создать .
- В окне Изменение системной переменной (или Новая системная переменная) укажите значение переменной среды PATH . Нажмите ОК. Закройте остальные открытые окна, нажимая ОК.
- Откройте заново окно командной строки и выполните код java.
Solaris и Linux
- Чтобы узнать, правильно ли настроен путь: В окнах терминала введите: % java -version Будет выведена версия средства java , если не удается ее найти. Если версия устарела или появляется ошибка java: команда не найдена, то путь задан неправильно.
- Определите, какая исполняемая версия java является первой найденной в переменной PATHВ окне терминала введите: % which java
Окончательная настройка пути
Чтобы задать путь окончательно, настройте его в файле автозагрузки. Примечание. Приведены инструкции для двух самых популярных оболочек на Linux и Solaris. Если вы используете другие оболочки, см. Учебное пособие по установке переменной PATH.
Оболочка Bash
Отредактируйте файл автозагрузки (
- Измените переменную PATH variable PATH=/usr/local/jdk1.8.0/bin:$PATH export PATH
- Сохранить изменения и закрыть окно
- Загрузите файл автозагрузки % . /.profile
- Убедитесь, что путь задан, повторив команду java % java -version
Оболочка C (csh)
Отредактируйте файл автозагрузки (
- Задайте путь set path=(/usr/local/jdk1.8.0/bin $path)
- Сохранить изменения и закрыть окно
- Загрузите файл автозагрузки % source
/.cshrc
Убедитесь, что путь задан, повторив команду java % java -version
Setting Environment Variables in Windows 10
Follow the process above to get into the environment variables dialog box. After highlighting PATH variable from “System Variables” click the Edit button. You can add or modify the path lines with the directories you want your computer to look in for executable files. You will find that each different directory is separated with a semicolon, for example:
There are other environment variables “System Variables” section which you can examine by clicking Edit. Likewise, there are different environment variables, such as PATH, HOME and USER PROFILE, HOME and APP DATA, TERM, PS1, MAIL and TEMP etc. These variables are very useful and can be used in scripts as well as on the command line.
Interested in digging into the guts of Windows 10? Check out the Windows 10 In Depth Guide, a comprehensive book that will turn you into a Windows 10 powerhouse!
For more information about using the command line, check out this TechJunkie tutorial.
Получение информации о переменных окружения
В работе, тесно связанной с системным администрированием довольно часто приходится сталкиваться с такими ситуациями, когда необходимо узнать значения некоторых переменных окружения или же вывести список полный список таковых. Для этой цели существует несколько специализированных утилит. В подавляющем большинстве случаев соответствующие пакеты уже предустановлены в системе. Самыми распространёнными из таких утилит являются printenv, env, а также export. Так, например, для того, чтобы вывести список действующих переменных окружения нужно дать следующую команду:
$ printenv GS_LIB=/home/john/.fonts KDE_FULL_SESSION=true LANG=ru_RU.UTF-8 DISPLAY=:0 OLDPWD=/home/john/builds/wxwidgets PWD=/home/john HOME=/home/john . . . SHELL=/bin/bash PATH=/opt/wxwidgets/bin:/home/john/.config/composer/vendor/bin:/usr/bin
В данном выводе представлен сильно сокращённый список переменных окружения для Kubuntu 18.04. Также следует заметить, что представленный список относится к пользовательскому набору, доступному текущему пользователю. Если выполнить команду printenv от имени суперпользователя (root), то набор переменных будет несколько отличаться.
Как следует из вышеприведённого вывода, для пользователя john используется русская локализация для сеанса (LANG), в качестве командного интерпретатора по-умолчанию используется bash (SHELL), текущим активным каталогом является /home/john (PWD), а переменная PATH модифицирована и содержит в себе (кроме дефолтного /usr/bin) значения /opt/wxwidgets/bin и /home/john/.config/composer/vendor/bin. Значение каждой переменной окружения представляет собой, как можно видеть, набор параметров, разделённых двоеточиями.
Тот же список можно вывести, если дать команду env. Также можно использовать команду export с ключом -p:
$ export -p
Для вывода значения конкретной переменной:
$ echo $PATH
или:
$ printenv | grep PATH
В последнем случае будет выведены все переменные, содержащие фразу «PATH».
Переменные среды Windows, что это и как ими пользоваться?
Помимо того, что такие переменные имеют короткие имена и освобождают вас от необходимости знать многие технические особенности Windows. Их очень просто использовать. Например, если вы часто используете в путях имя пользователя, то все что вам нужно это использовать переменную %USERNAME%. Она уникальна для каждого пользователя, так что ваши программы и скрипты не потребуют постоянной настройки под каждого пользователя. Да и порой имена у пользователей бывают не очень простыми, например, содержащими цифро-буквенные комбинации.
Примечание: Регистр в переменных не имеет значения,
т.е. %USERNAME% = %uSErnAME%.
Если приводить другой пример, то это, бесспорно, часто используемые папки Windows. Каждая учетная запись пользователя имеет собственную коллекцию папок, таких как: (Мои) Документы, Избранное, Рабочий стол и так далее. В Windows XP эти папки находятся в каталоге «C:\Documents and Settings\{пользователь}\». В Windows 7 они находятся в «C:\Users\{пользователь}\». А так же существуют 2003 Server, 2008 Server, Vista, Win 8 и другие. Да и систему можно установить не на диск «C:», а, например, на диск «D:». Запоминать такие пути, а тем более набирать — дело не самое приятное. В таком случае проще всего использовать специальную переменную %USERPROFILE%, которая есть во всех версиях Windows, начиная с XP. Набирать ее намного проще, да и запомнить тоже.
Рассмотренные примеры — это только лишь часть множества переменных окружения.
Примечание: Стоит так же отметить, что достаточно часто такие переменные используются при запуске программ в командной строке.
Переменные окружения в Windows 8/8.1
Переменная окружения | Путь на диске |
---|---|
%ALLUSERSPROFILE% | C:\ProgramData |
%APPDATA% | C:\Users\Username\AppData\Roaming |
%COMMONPROGRAMFILES% | C:\Program Files\Common Files |
%COMMONPROGRAMFILES(x86)% | C:\Program Files (x86)\Common Files |
%COMSPEC% | C:\Windows\System32\cmd.exe |
%HOMEDRIVE% | C:\ |
%HOMEPATH% | C:\Users\Username |
%LOCALAPPDATA% | C:\Users\Username\AppData\Local |
%PROGRAMDATA% | C:\ProgramData |
%PROGRAMFILES% | C:\Program Files |
%PROGRAMFILES(X86)% | C:\Program Files (x86) (только в 64-битной версии) |
%PUBLIC% | C:\Users\Public |
%SystemDrive% | C:\ |
%SystemRoot% | C:\Windows |
%TEMP% | C:\Users\Username\AppData\Local\Temp |
%TMP% | C:\Users\Username\AppData\Local\Temp |
%USERPROFILE% | C:\Users\Username |
%WINDIR% | C:\Windows |
Разделение параметров на группы с ParameterSetName
В ситуациях, когда в функцию нужно передать разный набор обязательных параметров, мы можем использовать атрибут ParameterSetName. Для примера можно посмотреть на описание синтаксиса команды ‘Get-EventLog’:
У нас выводится 2 возможных варианта использования команды. Для каждого из варианта использования команды могут быть определены свои индивидуальные ключи. Именно для этого используется ParameterSetName.
Создадим команду с 2-умя группами. Первая группа ‘Group1’ работает с именами пользователей, а ‘Group2’ только с идентификаторами и требует дополнительно параметра:
На скриншоте видно, что если мы введем ‘ID’, то появится диалог с вводом ‘Message’. Вы так же можете попробовать использовать кнопку ‘tab’ после выбора одной из групп — параметры из другой группы перестанут предлагаться.
Если вы попробуете запустить команду без указания каких либо групп — получите ошибку:
- Не удается разрешить набор параметров с использованием указанных именованных параметров.
- parameter set cannot be resolved using the specified named parameters
Группу, которую вы планируете использовать по умолчанию, можно определить в ‘CmdletBinding’ используя атрибут ‘DefaultParameterSetName’:
Один ключ может находится в нескольких группах. Для этого, группу, нужно указать в разных ‘Parameter()’. Каждый аргумент, указанный в Parameter, будет действовать для определенной группы. Так, в случае ниже, в одной группе «$Message» является обязательным, а в другой опциональным параметром:
Определение выбранной группы с $PSCmdlet
После вызова команды создается переменная $PSCmdlet. В этой переменной хранятся разные свойства команды. Одно из таких свойств ‘ParameterSetName’, который показывает выбранную группу. Это может понадобиться что бы более удобно расписать логику:
Если какой-то параметр не будет принадлежать к конкретной группе — его можно будет использовать в любых комбинациях.
Установка компонентов операционной системы средствами командной строки
Ни для кого не секрет, что управление практически каждой задачей, выполняемой средствами пользовательского интерфейса, имеет свой аналог в среде командной строки. Установка системных компонентов не является исключением. Для установки, настройки, обновления и удаления системных компонентов в образах Windows или уже установленной операционной системе вы можете воспользоваться утилитой командной строки dism. Система обслуживания образов развертывания и управления (DISM) в основном предназначается для подготовки образа среды предустановки операционной системы Windows. Эту утилиту командной строки можно применять для операционных систем, начиная с Windows Vista SP1 и Windows Server 2008. Так как основной задачей, описанной в этой статье, является установка системных компонентов, думаю, нет смысла приводить подробное описание текущей утилиты командной строки и рассказывать о ее функциональных возможностях. В данном случае нас интересуют только несколько команд, а именно:
- /Online. Благодаря этой команде вы можете указать, что при работе с этой командой будет использоваться работающая на данный момент операционная система, а не образ;
- /Get-Features. Несмотря на то, что непосредственно для процесса установки компонентов операционной системы эта команда считается бесполезной, ее вывод вам может понадобиться перед установкой компонентов операционной системы. Текущая команда отображает сведения обо всех системных компонентах, причем, как установленных, так и не установленных на целевом компьютере;
- /Enable-Feature. Эта команда позволяет установить на компьютер указанный вами компонент операционной системы.
Теперь можно попробовать установить на компьютере с клиентской операционной системой такой компонент как клиент Telnet при помощи командной строки. А сделать это можно следующим образом:
Нужно открыть командную строку от имени администратора
Стоит на это обязательно обратить внимание. Если командная строка будет запущена под пользовательским маркером доступа, утилита Dism не будет работать;
Чтобы просмотреть, как называется в операционной системе данный компонент, выполните команду Dism /Online /Get-Features, как показано на следующей иллюстрации:Рис. 1
Вывод команды /Get-Features
Стоит обратить внимание на то, что данная команда выводит очень много информации, и весь вывод команд вы не увидите, поэтому лучше всего сохранять вывод команды в текстовый файл, а уже в текстовом файле искать компонент, который следует устанавливать
1
Вывод команды /Get-Features
Стоит обратить внимание на то, что данная команда выводит очень много информации, и весь вывод команд вы не увидите, поэтому лучше всего сохранять вывод команды в текстовый файл, а уже в текстовом файле искать компонент, который следует устанавливать
После того как станет известно название необходимого вам компонента операционной системы (например, такой компонент как «Клиент Telnet» называется TelnetClient) останется только лишь установить его при помощи утилиты dism с командой /Enable-Feature. В случае с клиентом Telnet команда должна выглядеть следующим образом: Dism /Online /Enable-Feature /FeatureName:TelnetClient. Установка системного компонента средствами командной строки изображена на следующей иллюстрации:Рис. 2. Установка компонента операционной системы средствами командной строки
Заключение
Переменные окружения и оболочки всегда присутствуют в сеансах оболочки и могут быть очень полезны. Они позволяют родительским процессам устанавливать детали конфигурации для своих дочерних процессов и являются способом установки определенных параметров без использования отдельных файлов.
Это дает много преимуществ в конкретных ситуациях. Например, некоторые механизмы развертывания (деплоймента) полагаются на переменные окружения для настройки информации аутентификации. Переменные окружения и оболочки позволяют хранить эти данные не в файлах, которые могут быть просмотрены посторонними лицами.
Существует множество других распространенных сценариев, в которых вам нужно будет прочитать или изменить параметры/данные вашего окружения или оболочки. Теперь вы знаете как это можно сделать.