Как изменить переменные среды в Windows 7. Как создать переменную среды


Как изменить переменные среды в Windows 7

Как изменить переменные среды в Windows 7

Переменная среды (окружения) в Виндовс хранит информацию о настройках ОС и пользовательских данных. Обозначается она с помощью парного символа «%», например:

%USERNAME%

С помощью этих переменных можно передавать необходимую информацию операционной системе. Например, %PATH% хранит список директорий, в которых Виндовс ищет исполняемые файлы, если путь к ним не задан явно. %TEMP% хранит временные файлы, а %APPDATA% — настройки программ пользователя.

Зачем редактировать переменные

Изменение переменных среды может помочь, если вы хотите перенести папку «Temp» или «AppData» в другое место. Редактирование %PATH% даст возможность запускать программы из «Командной строки», не указывая каждый раз длинный путь к файлу. Давайте рассмотрим методы, которые помогут в достижении этих целей.

Способ 1: Свойства «Компьютера»

В качестве примера программы, которую необходимо запустить, используем Skype. Попытавшись активировать это приложение из «Командной строки», вы получите такую ошибку:

Ошибка при запуске Скайпа в командной строке в Виндовс 7

Это происходит потому, что вы не задали полный путь к исполняемому файлу. В нашем случае полный путь выглядит вот так:

"C:\Program Files (x86)\Skype\Phone\Skype.exe"

Запуск Скайпа с указанием полного пути в командной строке в Виндовс 7

Чтобы это не повторять каждый раз, давайте добавим директорию Скайпа в переменную %PATH%.

  1. В меню «Пуск» нажмите правой кнопкой мыши на «Компьютер» и выберите «Свойства».
  2. Свойства Компьютера в Виндовс 7

  3. Затем перейдите на «Дополнительные параметры системы».
  4. Дополнительные параметры системы в Виндовс 7

  5. На вкладке «Дополнительно» нажмите на «Переменные среды».
  6. Меню Переменные среды в Виндовс 7

  7. Откроется окно с различными переменными. Выберите «Path» и нажмите «Изменить».
  8. Выбор переменной среды для редактирования в Виндовс 7

  9. Теперь необходимо дописать путь к нашей директории.

    Путь нужно указывать не к самому файлу, а к папке, в которой он находится. Обратите внимание, что разделителем между директориями является «;».

    Дописываем путь:

    C:\Program Files (x86)\Skype\Phone

    и жмем «ОК».

  10. Сохранение изменений в переменной среде в Виндовс 7

  11. Если есть необходимость, таким же образом вносим изменения в другие переменные и жмем «ОК».
  12. Завершение редактирования переменной среды в Виндовс 7

  13. Завершаем сеанс пользователя, чтобы изменения сохранились в системе. Снова заходим в «Командную строку» и пытаемся запустить Скайп, введя
  14. skype

    Запуск Скайпа без полного пути в командной строке в Виндовс 7

Готово! Теперь вы можете запускать любую программу, а не только Skype, находясь в любой директории в «Командной строке».

Способ 2: «Командная строка»

Рассмотрим случай, когда мы хотим установить %APPDATA% на диск «D». Эта переменная отсутствует в «Переменных среды», поэтому ее невозможно изменить первым способом.

  1. Чтобы узнать текущее значение переменной, в «Командной строке» введите:
  2. echo %APPDATA%

    Просмотр значения AppData в командной строке в Виндовс 7

    В нашем случае эта папка находится по адресу:

    C:\Users\Настя\AppData\Roaming

  3. Для того чтобы изменить ее значение, введите:
  4. SET APPDATA=D:\APPDATA

    Внимание! Убедитесь, что точно знаете зачем вы это делаете, поскольку необдуманные действия могут привести к неработоспособности Виндовс.

  5. Проверим текущее значение %APPDATA%, введя:
  6. echo %APPDATA%

    Просмотр измененного значения AppData в командной строке в Виндовс 7

    Значение успешно изменено.

Изменение значений переменных среды требует определенных знаний в этой сфере. Не играйтесь со значениями и не редактируйте их наугад, чтобы не навредить ОС. Хорошо изучите теоретический материал, и только после этого переходите к практике.

Мы рады, что смогли помочь Вам в решении проблемы.
Задайте свой вопрос в комментариях, подробно расписав суть проблемы. Наши специалисты постараются ответить максимально быстро.

Помогла ли вам эта статья?

Да Нет

lumpics.ru

Переменные среды Windows. | Настройка серверов windows и linux

переменные среды windows

Добрый день уважаемые читатели и гости блога, сегодня я с вами хочу обсудить вот такую тему, что такое переменные среды Windows, где их можно использовать, как в обычной практике пользователя, так и в практике системного администратора, я вам приведу несколько примеров. Как все это дело настраивается и изменяется под ваши нужны, на мой взгляд это фундаментальные знания, понимание которых вам лучше покажет принцип работы операционных систем семейства Windows.

 

Что такое переменные среды windows

Давайте разберемся в понятии, и так переменная окружения (environment variable) это специального рода ссылки уменьшенного размера, на определенные объекты операционной системы Windows, используемые разными программами для хранения информации и взаимодействия с ней. Можно провести аналогию с относительными ссылками на сайтах, где нет явного указания на протокол. Чаще всего это пути до конкретных директорий в ОС.

Где используют переменные среды Windows

Приведу несколько примеров:

  • В скриптах > когда нужно например каждому пользователю сделать какую-то настройку, для примера положить на рабочий стол новую папку с документами. Так как для каждого пользователя путь до рабочего стола свой, вида C:\Users\lacky\Desktop, а можно обратиться и по относительному пути за счет переменной %HOMEPATH%, если вы в проводнике введете %HOMEPATH%\Desktop, то попадете на рабочий стол текущего пользователя.

переменные среды windows 10

  • в групповой политике, для настройки пользовательских окружений, например перемещаемые профили.
  • Оптимизация кода > если в коде очень часто используются одни и те же пути к файлам или папкам, а так же ключам реестра, вы можете легко назначить короткую переменную для дальнейшего использования. Ниже я вам приведу сводный список по переменным средам windows 10 и предыдущих версий, а так же покажу как их создавать и менять.

Все переменные среды windows 10 и других версий в своем составе имеют специальный оператор %. Он необходим, чтобы операционная система могла обработать поисковый запрос. Простой пример вы ищите папку TEMP и не знаете, где она располагается, вводите %TEMP% и поиск будет на всех локальных дисках и разделах.

 Список переменных сред windows 10

Приведенный список, в полной мере подойдет и для Windows 7 и для Windows 8.1, все проверенно лично. Уверен, что данные знания, очень сильно вам помогут оптимизировать свою работу.

  • %ALLUSERSPROFILE% > данная переменная отправит вас в папку C:\ProgramData
  • %windir% > это папка C:\Windows
  • %APPDATA% > вы попадается в скрытую папку C:\Users\Имя_пользователя\AppData\Roaming
  • %CommonProgramFiles% > папка C:\Program Files\Common Files
  • %CommonProgramFiles(x86)% > перекинет вас в C:\Program Files (x86)\Common Files
  • %CommonProgramW6432% > перекинет вас C:\Program Files\Common Files
  • %COMPUTERNAME% > Имя_компьютера, используется скриптах
  • %ComSpec% > откроет командную строку Windows 10 C:\Windows\system32\cmd.exe
  • %HOMEDRIVE% > путь к диску C:
  • %HOMEPATH% > эта переменная среды windows перекинет вас в папку пользователя \Users\Имя_пользователя
  • %LOCALAPPDATA% > эта переменная среды windows перекинет вас в папку C:\Users\Имя_пользователя\AppData\Local
  • %LOGONSERVER% > Имя_компьютера
  • %NUMBER_OF_PROCESSORS% > Количество_процессоров
  • %OS% > Windows_NT, так же используется в скриптах
  • %Path% > C:\Windows\system32;C:\Windows;C:\Windows\System32Wbem;
  • %PATHEXT% .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
  • %PROCESSOR_ARCHITECTURE% > x86 или AMD64, архитектура Windows
  • %PROCESSOR_IDENTIFIER% > Intel64 Family 6 Model 37 Stepping 5, GenuineIntel
  • %PROCESSOR_LEVEL% > 6
  • %PROCESSOR_REVISION% > 2505 (пример)
  • %ProgramData% > папка C:\ProgramData
  • %ProgramFiles% > C:\Program Files
  • %ProgramFiles(x86)% > папка C:\Program Files (x86)
  • %ProgramW6432% > C:\Program Files
  • %PROMPT% > $P$G
  • %PSModulePath% > C:\Windows\system32\WindowsPowerShell\v1.0\Modules\ согласитесь очеь быстро
  • %PUBLIC% > C:\Users\Public
  • %SystemDrive% > диск C:
  • %SystemRoot% > C:\Windows
  • %TEMP% > C:\Users\Имя_пользователя\AppData\Local\Temp (по умолчанию)
  • %TMP% > C:\Users\Имя_пользователя\AppData\Local\Temp (по умолчанию)
  • %USERDOMAIN% > Имя_компьютера
  • %USERDOMAIN_ROAMINGPROFILE% > Имя_компьютера
  • %USERNAME% > Имя_пользователя
  • %USERPROFILE% > C:\Users\Имя_пользователя

Как вывести список всех переменных Windows

В Windows 10 и других версиях, можно вывести список всех переменных сред Windows, для этого откройте командную строку от имени администратора и введите команду SET.  В результате вы получите все переменные среды windows 10 по умолчанию для конкретной операционной системы.

переменные среды windows 10 по умолчанию

Для удобства вы можете экспортировать весь этот список в текстовый файл, для этого введите:

переменная среды path windows 10

Вот содержимое данного документы.

переменные среды windows 10-2

Еще одним методом посмотреть переменные операционной системы, выступает реестр Windows. Нажимаем WIN+R и вводим regedit. В открывшемся окне редактор реестра, перейдите в ветку:

Для просмотра переменных для компьютера

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment

Для просмотра переменных для пользователя

HKEY_CURRENT_USER\Environment

реестр, переменные среды windows 10-1

реестр, переменные среды windows 10-2

Создаем переменные среды windows 10

ПО мимо уже имеющихся переменных Windows 10, вы можете создать и новые, это очень легко и не запрещается. Что от вас требуется, вам необходимо зайти в свойства системы. Тут несколько методов, если мы говорим про Windows 10, то можно сделать через правый клик по кнопке "Пуск", выбрав пункт система.

Как создать переменные среды windows 10-1

Универсальный метод, это зайти в свойства моего компьютера или нажать сочетание клавиш WIN+Pause Breake.

Как создать переменные среды windows 10-2

С окне свойства системы, вы должны перейти в пункт "Дополнительные параметры системы"

изменение переменных среды windows 7-1

Далее пункт переменные среды.

изменение переменных среды windows 7-2

И перед вами два вида переменных сред Windows:

  • Временные переменные temp
  • Системные переменные

И те и другие можно легко изменить или создать.

изменение переменных среды windows 10-1

Для примера я создам новую системную переменную, назову ее SYSPREP и укажу путь до папки C:\Windows\System32\Sysprep

создать переменные среды windows 10-1

Проверяю, что все добавилось. И теперь вбив переменную %SYSPREP% у меня откроется C:\Windows\System32\Sysprep.

создать переменные среды windows 10-2

Как видите тут ничего сложного нет, благодаря вот таким вещам вы можете сильно упростить себе жизнь и экономить много времени.

pyatilistnik.org

Как задать или настроить системную переменную PATH?

Инструкции на данной странице предназначены только для опытных пользователей и системных администраторов.

Mac OS X

Чтобы запустить другую версию Java, укажите полный путь или используйте инструмент java_home:

% /usr/libexec/java_home -v 1.8.0_73 --exec javac -version
Окончательная настройка пути

Чтобы задать путь окончательно, настройте его в файле автозагрузки.Примечание. Приведены инструкции для двух самых популярных оболочек на Linux и Solaris. Если вы используете другие оболочки, см. Учебное пособие по установке переменной PATH.

Оболочка Bash

Отредактируйте файл автозагрузки (~/.bashrc)

  1. Измените переменную PATH variablePATH=/usr/local/jdk1.8.0/bin:$PATH export PATH
  2. Сохранить изменения и закрыть окно
  3. Загрузите файл автозагрузки % . /.profile
  4. Убедитесь, что путь задан, повторив команду java% java -version
Оболочка C (csh)

Отредактируйте файл автозагрузки (~/.cshrc)

  1. Задайте путь set path=(/usr/local/jdk1.8.0/bin $path)
  2. Сохранить изменения и закрыть окно
  3. Загрузите файл автозагрузки% source ~/.cshrc
  4. Убедитесь, что путь задан, повторив команду java% java -version

www.java.com

Переменные средЫ Windows - TEMP и TMP

Переменные среды Windows - ударение на "Ы" во втором слове (смысл фразы заложен в родительном падеже и верном ударении: переменные чего? - среды!), в англоязычных версиях виндовс - environment variable)

Переменные среды Windows используются для настройки операционных систем. Не каждому пользователю нужно разбираться с этими настройками и влезать в эти переменные, но есть пара переменных, о которых нужно знать всем пользователям персональных компьютеров. Речь идет о переменных, отвечающих за временное хранение файлов - TEMP и TMP.



По умолчанию значение пользовательских временных (TEMP) переменных – %USERPROFILE%\Local Settings\Temp,

По умолчанию значение системных временных переменных – \WINDOWS\Temp.

Поэтому в первом случае это обычно: "C:\Documents and Settings\USER\Local Settings\Temp"

 

По причине того, что в семействе операционных систем Windows папки с временными файлами сами собой почему-то не очищаются, в них может скопиться огромное множество различных ненужных файлов, достигающих общим размером до нескольких гигабайт! Среди временных файлов периодически прячутся различные вирусы и нехорошие скрипты, поэтому обязанность каждого пользователя ПК - регулярно удалять содержимое временных папок.

Для удобства удаления лучше изменить путь по умолчанию на более простой, самый оптимальный вариант - "C:\Temp".

 

Как изменить Переменные среды Windows TEMP и TMP? - Очень просто:

1. Правый клик на значке "Мой компьютер" на рабочем столе (если это полноценный значок, а не ярлык) или через меню Пуск -> Мой компьютер - > Свойства:

2. Перейти на вкладку "Дополнительно" и кликнуть внизу на кнопку "Переменные среды":

 

3. В верхнем окне "Переменные среды пользователя" выбрать сначала первую строку (переменную TEMP) и нажать кнопку "Изменить":

  

4. Исправить значение переменной на более простое - "C:\Temp":

 

5. Повторить пункты 3 и 4 для переменной TMP:

 

В итоге должно получиться:

 

6. Нажать поочередно 2 раза "ОК".



В принципе тоже самое можно сделать с помощью командной строки, выполнив команду: SET TEMP=C:\TEMP

 

Все переменные среды Windows:

ALLUSERSPROFILE Указывает расположение профиля All Users (локальная переменная)
APPDATA Указывает расположение каталога, в котором программы хранят данные по умолчанию (локальная переменная)
CD Указывает имя текущего каталога (локальная переменная)
CMDCMDLINE Указывает параметры командной строки, которые использовались для запуска текущего экземпляра программы CMD.EXE (локальная переменная)
CMDEXTVERSION Указывает номер версии текущего расширения командного процессора (системная переменная)
COMPUTERNAME Указывает имя компьютера (системная переменная)
COMSPEC Указывает точный путь к исполняемому файлу командного интерпретатора (системная переменная)
DATE Указывает текущую дату. Используется тот же формат, что и для команды date /t. Значение генерируется командным интерпретатором (системная переменная)
ERRORLEVEL Указывает код уровня ошибки последней программы. Ненулевое значение, скорее всего, указывает на ошибку (системная переменная)
HOMEDRIVE Указывает букву диска локальной рабочей станции, подключенной к домашнему каталогу. Переменная определяется на основе пути к домашнему каталогу. Домашний каталог пользователя определяется в оснастке Локальные пользователи и группы (Local Users and Groups) (системная переменная)
HOMEPATH Указывает полный путь к домашнему каталогу пользователя. Переменная определяется на основе пути к домашнему каталогу. Домашний каталог пользователя определяется в оснастке Локальные пользователи и группы (Local Users and Groups) (системная переменная)
HOMESHARE Указывает сетевой путь к общему домашнему каталогу пользователя. Переменная определяется на основе пути к домашнему каталогу. Домашний каталог пользователя назначается в оснастке Локальные пользователи и группы (Local Users and Groups) (системная переменная)
LOGONSERVER Указывает имя контроллера домена, на котором авторизован текущий сеанс работы с системой (локальная переменная)
NUMBER_OF_PROCESSORS Указывает количество процессоров, установленных в компьютере (системная переменная)
OS Указывает версию операционной системы. ОС Windows XP/XP обозначаются, как Windows_NT (системная переменная)
PATH Указывает путь поиска исполняемых файлов (системная переменная)
PATHEXT Указывает список расширений, которые распознаются операционной системой, как расширения исполняемых файлов (системная переменная)
PROCESSOR_ARCHITECTURE Указывает тип архитектуры процессора. Возможные значения: x86 и IA64 (системная переменная)
PROCESSOR_IDENTIFIER Указывает описание процессора (системная переменная)
PROCESSOR_LEVEL Указывает номер модели процессора, установленного в компьютере (системная переменная)
PROCESSOR_REVISION Указывает номер версии модели процессора (системная переменная)
PROMPT Указывает параметры приглашения командной строки для текущего интерпретатора. Генерируется интерпретатором CMD.EXE (локальная переменная)
RandOM Указывает случайное десятичное число от 0 до 32767. Генерируется программой CMD.EXE (системная переменная)
SYSTEMDRIVE Указывает букву диска, на котором расположен корневой каталог Windows (системная переменная)
SYSTEMROOT Указывает путь к корневому каталогу Windows (системная переменная)
TEMP или TMP Указывает путь к временным каталогам, принятым по умолчанию. Эти каталоги используются приложениями, доступными зарегистрированному в системе пользователю. Некоторым приложениям требуется значение переменной TEMP, в то время как другим — TMP (системная и пользовательская переменные соответственно)
TIME Указывает текущее время. Используется тот же формат, что и для команды time /t. Генерируется интерпретатором CMD.EXE (системная переменная)
USERDOMAIN Указывает имя домена, в котором хранится учетная запись пользователя (локальная переменная)
USERNAME Указывает имя пользователя, который зарегистрирован в системе в текущий момент времени (локальная переменная)
USERPROFILE Указывает путь к профилю текущего пользователя (локальная переменная)
WINDIR Указывает путь к каталогу операционной системы (системная переменная)



Чтобы получить доступ к значению переменной, необходимо поставить знак % перед её названием и после него, например: echo %NUMBER_OF_PROCESSORS%

skalolaskovy.ru

что это и как с их помощью решить некоторые проблемы?

Переменные среды в Windows 7, равно как и в любой другой системе этого семейства, большинству пользователей незнакомы. Однако иногда даже при обновлении система может отказаться установить какой-то апдейт только по причине того, что переменные среды настроены неправильно. И далеко не каждый юзер знает, что это такое вообще.

Переменные среды в Windows 7 - что это?

переменные среды в windows 7

Для начала обозначим само понятие переменных сред. Выражаясь математическим языком, это есть средство доступа к некоторым временным файлам без указания абсолютного пути, когда папки TMP или TEMP скрыты от глаз пользователя.

В принципе, найти их можно совершенно просто, если включить отображение скрытых объектов в меню вида.

неправильные переменные среды центра обновления windows 7

Но ведь можно обойтись и без этого. Пути задания будут рассмотрены несколько позже (переменные среды, path Windows 7), а пока посмотрим на использование основного оператора.

Использование основного оператора

При доступе к некоторым функциям системы или даже при поиске в том же «Проводнике» можно не указывать абсолютные пути к файлам или папкам. Переменные среды в Windows 7 или в любой другой системе рассчитаны на то, чтобы использовать символ процентов. Он как раз и является тем средством, которое позволяет обойти ограничения при выключенном отображении скрытых файлов и папок или пользоваться так называемым обобщенным поиском. В примере ниже видно, что он производится по любому имени юзера.

восстановить переменные среды в windows 7

В данном случае можно просто задать путь, например, %Username%, а система отобразит все файлы и папки, имеющие такое название, причем даже скрытые. Как уже понятно, указывать диск не нужно.

Неправильные переменные среды «Центра обновления» Windows 7

Но вот самая большая беда состоит в установке апдейтов, при которой в некоторых случаях возникают сбои. Тут проблема кроется в том, что временные файлы просто невозможно сохранить на винчестере. Конечно, по умолчанию папки настроены, однако их переполнение может привести к непредсказуемым последствиям.

Для начала стоит полностью очистить кэш диска и браузера, после чего воспользоваться средством очистки диска, которое имеется в самой системе. Доступ к нему можно получить через свойства диска, где в меню выбирается соответствующая кнопка.

К настройке самих переменных сред доступ осуществляется через меню свойств компьютера, где выбирается вкладка дополнительных параметров. Снизу слева есть кнопка перехода в настройки переменных сред.

Кстати сказать, если устанавливать тот же пакет JAVA SDK, система автоматически место, отведенное под хранение временных объектов, не воспримет, поэтому в настройках путь придется настраивать вручную, указав соответствующую папку.

Как произвести восстановление параметров?

Восстановить переменные среды в Windows 7 можно совершенно просто. Если уж на то пошло, нет ничего проще, нежели воспользоваться откатом системы (либо из «Панели управления», либо из загрузочного меню, вызываемого клавишей F8 при старте системы, где выбирается последняя работоспособная конфигурация).

переменные среды path windows 7

Но поменять параметры можно и вручную, открыв свойства указанной среды кнопкой изменения параметров, после чего нужно будет просто указать нужный путь к каталогу (например, C:\Temp). Это работает и для папки TEMP, и для директории TMP.

Вместо послесловия

Как видим, переменные среды в Windows 7 или в любой другой системе настроить можно достаточно просто. Однако нужно четко понимать, для чего они используются. Конечно, рядовой юзер вряд ли будет заниматься изменением таких параметров, но для тех, кто пользуется дополнительными платформами, без этого просто не обойтись, тем более что некоторые программные продукты подразумевает именно ручную настройку, как в случае с любым пакетом SDK.

Кроме того, если возникают ошибки с обновлением системы, можно воспользоваться некоторыми дополнительными средствами. Многие специалисты рекомендуют установить некие фиксеры вроде Microsoft Fix It! или что-то подобное. Кстати, именно утилита от Microsoft позволяет избавиться от множества проблем, включая даже неполадки с сетевыми подключениями.

И речь уже не идет о профессиональных программах-оптимизаторах, которые могут устранять любые ошибки автоматически и без участия пользователя в самом процессе. Но и среди них следует выбирать именно то, что нужно. Например, восстановление лучше производить при помощи программных продуктов iObit, а исправление неполадок – утилитой CCleaner.

Тем не менее редактирование путей доступа к временным папкам в любом случае придется производить только в ручном режиме, особенно если по каким-то причинам произошли программные сбои по вине системы. Для этих компонентов иногда даже восстановление системы не помогает. И тогда придется удалять пакеты обновлений, которые, собственно, и могут вызывать ошибки подобного рода. И здесь специально не рассматривалась команда SET, которая позволяет управлять некоторыми параметрами, поскольку большинству пользователей она просто не пригодится.

fb.ru

Переменные окружения Windows | windows

Переменные окружения Windows дают программам информацию об операционной системе. Ниже в таблице приведен стандартный список переменных окружения, которые создает Windows. Различные программы также создают свои переменные окружения, которые используют в служебных целях для хранения какой-либо информации.

ALLUSERSPROFILE В режиме работы под локальным пользователем система возвратит место размещения всех каталогов профилей пользователей (путь папки All Users, например C:\Documents and Settings\All Users).
APPDATA В режиме работы под локальным пользователем система возвратит место на диске, где приложения сохраняют свои данные по умолчанию (например C:\Documents and Settings\имяпользователя\Application Data).
CD В режиме работы под локальным пользователем система возвратит строку, где будет путь до текущей директории.
CMDCMDLINE В режиме работы под локальным пользователем система возвратит полную командную строку, которая используется для запуска текущего интерпретатора команд cmd.exe.
CMDEXTVERSION Система вернет номер версии текущих расширений интерпретатора команд (Command Processor Extensions).
COMPUTERNAME Система возвратит имя компьютера (оно используется для идентификации компьютера в локальной сети), например WORKSTATION.
ComSpec Система вернет полный путь до исполняемого файла интерпретатора команд (например C:\WINDOWS\system32\cmd.exe).
DATE Система вернет текущую дату. Эта переменная окружения использует тот же самый формат, который использует команда date /t. Cmd.exe генерирует значение этой переменной.
ERRORLEVEL Система вернет код ошибки последней используемой команды. Значение кода, не равное 0 обычно показывает какую-то ошибку.
HOMEDRIVE Система покажет букву диска, который связан с домашней директорией пользователей. Эта переменная устанавливается на базе значения домашней директории, где находятся профили пользователей (пользователи и группы управляются оснасткой Local Users and Groups, Локальные пользователи и группы).
HOMEPATH Система вернет полный путь до домашнего каталога текущего пользователя (user's home directory). Эта переменная устанавливается на базе значения домашней директории.
HOMESHARE Система вернет сетевой путь до совместно используемой домашней директории пользователя (user's shared home directory). Эта переменная устанавливается на базе значения домашней директории.
LOGONSEVER В режиме работы под локальным пользователем система возвратит имя контроллера домена, который проверил текущее вхождение в систему пользователя. Если компьютер не находится в домене (принадлежит сети с рабочей группой), то эта переменная окружения вернет сетевое имя компьютера (например \\WORKSTATION).
NUMBER_OF_PROCESSORS Система возвратит количество процессоров, установленных в компьютере.
OS Система возвратит общее имя текущей операционной системы. Windows XP и Windows 2000 показывают значение переменной окружения OS как Windows_NT.
PATH Система возвратит пути, где осуществляется поиск исполняемых файлов. Возможно, что это самая важная из всех переменных окружения. В переменной PATH чаще всего находится несколько записей путей. Записи отделяются друг от друга точкой с запятой.
PATHEXT Система возвратит список расширений файлов, которые считаются исполняемыми.
PROCESSOR_ARCHITECTURE Система возвратит архитектуру используемого системой процессора. Значения: x86, IA64.
PROCESSOR_IDENTIFIER Система вернет описание процессора. Например: x86 Family 6 Model 42 Stepping 7, GenuineIntel.
PROCESSOR_LEVEL Система вернет номер модели процессора компьютера.
PROCESSOR_REVISION Система вернет номер ревизии процессора.
PROMPT Система вернет строку приглашения (command-prompt) для текущего интерпретатора команд. Эту переменную генерирует интерпретатор команд cmd.exe.
RANDOM Система вернет случайное десятичное число в диапазоне 0 .. 32767. Эту переменную генерирует интерпретатор команд cmd.exe.
SystemDrive Система вернет букву диска, на котором находится корневая директория Windows.
SystemRoot Система вернет путь до размещения корневого каталога (директории) Windows (Windows root directory).
TEMP или TMP Система сама и в режиме работы под локальным пользователем вернет директорию по умолчанию, где приложения и пользователи могут сохранять временные файлы (например C:\DOCUME~1\имяпользователя\LOCALS~1\Temp). Некоторые приложения требуют наличия переменной окружения TEMP, другие наличия переменной окружения TMP.
TIME Система возвратит текущее время. Эта переменная использует тот же формат, который использует команда time /t. Эту переменную генерирует интерпретатор команд cmd.exe.
USERDOMAIN В режиме работы под локальным пользователем система возвратит домена, который хранит учетную запись пользователя (user's account).
USERNAME В режиме работы под локальным пользователем система возвратит имя пользователя (логин), который в настоящее время вошел в систему.
USERPROFILE В режиме работы под локальным пользователем система возвратит место расположения каталога профиля текущего пользователя.
WINDIR Система вернет место расположения на диске директории операционной системы. Значение этой переменной окружения совпадает со значением переменной окружения SystemRoot.

[Как просматривать и редактировать переменные окружения]

Просматривать переменные окружения удобнее всего с помощью команды set. Ниже на примере настройки переменной окружения PATH будет показано редактирование переменной окружения.

В переменной окружения PATH (в командных файлах и в строке интерпретатора cmd для составления путей на неё ссылаются как на %Path%) хранятся пути поиска исполняемых файлов. Это нужно для того, чтобы не надо было вводить длинную строку пути до исполняемого файла. Например, это требуется для интерпретатора java.exe и других утилит JDK. Т. е. если в переменной Path прописан путь до java.exe, то можно не утруждать себя вводом полного пути до java.exe, операционная система Windows будет знать, где искать исполняемый файл.

Все переменные окружения, в том числе и Path, могут быть просмотрены, изменены, удалены и добавлены командой SET. В переменной Path может быть прописано множество путей. Каждая запись пути отделяется от другой точкой с запятой. Вот например, как можно просмотреть содержимое переменной окружения Path:

c:\>SET PATH Path=C:\Program Files\PC Connectivity Solution\;c:\Program Files\Atmel\AVR Tools \AVR Toolchain\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\WBEM;C:\Xi linx\11.1\ChipScope\bin\nt;C:\Xilinx\11.1\common\bin\nt;C:\Xilinx\11.1\common\li b\nt;C:\Xilinx\11.1\EDK\bin\nt;C:\Xilinx\11.1\EDK\lib\nt;C:\Xilinx\11.1\PlanAhea d\bin;C:\Xilinx\11.1\ISE\bin\nt;C:\Xilinx\11.1\ISE\lib\nt;c:\WinAVR-20100110\bin ;c:\WinAVR-20100110\utils\bin;c:\devkitPro\msys\bin;C:\Program Files\ATI Technol ogies\ATI.ACE\Core-Static;C:\WINDOWS\system32\WindowsPowerShell\v1.0;C:\Program Files\TortoiseHg\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\IVI Foundati on\IVI\bin;C:\Program Files\IVI Foundation\VISA\WinNT\Bin\;C:\PROGRA~1\IVIFOU~1\ VISA\WinNT\Bin;C:\Program Files\Common Files\Adobe\AGL;C:\Program Files\Microsof t SQL Server\100\Tools\Binn\;C:\Program Files\Microsoft SQL Server\100\DTS\Binn\ ;C:\Program Files\OpenVPN\bin;c:\Program Files\Android\apache-ant-1.9.3\bin;c:\P rogram Files\Android\android-studio\sdk\tools;c:\Program Files\Android\android-s tudio\sdk\platform-tools;c:\android-ndk-r9c;c:\Program Files\Java\jdk8u5\bin;C:\ Program Files\TortoiseGit\bin;C:\Program Files\IVI Foundation\VISA\WinNT\Bin;C:\ Program Files\ATMEL Corporation\sam-ba_2.11\drv\;C:\Program Files\ATMEL Corporat ion\sam-ba_2.11;C:\Program Files\ATMEL\FLIP 2.4.6\bin;C:\Program Files\Nmap;c:\M inGW\bin;C:\Program Files\Atmel\Flip 3.4.7\bin;c:\Program Files\GPAC;C:\Program Files\Common Files\Ahead\Lib\;C:\Program Files\Common Files\Ahead\Lib\ PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.PSC1

Однако новичкам намного проще использовать для редактирования переменной окружения Path инструмент Пуск -> Панель управления -> Система -> закладка Дополнительно -> кнопка внизу Переменные среды.

Откроется окно, в котором можно просмотреть (и отредактировать) как настройку Path для текущего пользователя (в верхней части окна "Переменные среды пользователя"), так и настройку Path для всей системы (в нижней части окна "Системные переменные").

Windows edit environment variables4

Для переменной окружения Path рекомендую вносить изменения в "Системные переменные", это повлияет на рабочее окружение всех пользователей, которые могут работать на этом компьютере.

microsin.net

Управляем переменными среды | Windows IT Pro/RE

Немного о среде

Переменные среды хранят информацию об особенностях установки, например имя системы (computername), особенности архитектуры операционной системы, 32- или 64-разрядная система (processor_architecture), а также путь поиска, где находятся исполняемые программы (path). Переменные среды можно разделить на три категории: зависящие только от операционной системы (например, только что упомянутые computername, processor_architecture, path), переменные, используемые приложениями независимых поставщиков (в частности, на моей системе QuickTime создает переменную QTJAVA), а также переменные, которые используют командные файлы Windows.

Простота языка программирования не имеет значения (командный язык Windows относится к самым простым), он необходим программистам для получения внутренних данных. Здесь главную роль играют переменные среды. Однако для получения информации о переменных среды нужен инструмент, и таким инструментом является команда Set.

Вот тут читатель воскликнет: «Кто же не знает команды Set!» А на самом деле, знаете ли вы, что эта команда может выполнять арифметические действия, операции с любой частью строковой переменной в существующих переменных среды? Что она упрощает ввод и может генерировать случайные числа? Эти и другие операции можно выполнять с помощью команды Set. Далее я расскажу о двух возможностях, которые предоставляет команда Set.

Генерация случайных чисел

Рассмотрим простой командный файл guessnumber.cmd (листинг 1). Скопируем этот текст в Notepad, сохраним в некоторой папке и назовем его guessnumber.cmd. Теперь открываем командное окно, вводим guessnumber, нажимаем Enter и следуем приглашениям программы. Это простая игра нестрогих рассуждений с использованием догадок, в процессе командный файл выбирает случайное число, запрашивает ответ, какое это число, сообщает, правильный ответ или нет, дает подсказку, больше или меньше ответ, чем загаданное число, и, если число не угадано, повторяет процесс. Игра, может быть, не самая интересная, но она есть в Windows Server 2008 Server Core.

Рассмотрим строку, которая выбирает случайное число для отгадывания:

set gamevalue=%random%

Главное место в этом коде занимает функция %random% (встроена в командный процессор Windows начиная с Windows 2000 Server), которая генерирует случайные числа в диапазоне от 0 до 32767.

После генерации случайного числа система должна повторить пользователю вопрос для угадывания. До Windows 2000 командные файлы не предлагали полезного способа для запроса ввода (как известно тем, кто пытался задействовать команду Choice). Начиная с Windows 2000 команда Set получила возможность ввода через ключ /p, как видно в следующем операторе:

set/p latestguess=What do you think it is?

Эта команда в общем виде выглядит так:

set/p environmentvariablename= [prompttext]

Здесь видно, что приглашением является вопрос «What do you think it is?». Отмечу, что пробел после вопросительного знака служит для лучшего форматирования. Все, что будет введено в переменную среды, получит название latestguess.

Выполнение арифметических действий

Я отметил выше, что задан диапазон значений (максимальное целое число равно 32768). Изменим правила игры, ограничив пользователя числом попыток не более 16. Необходимо выполнение арифметических действий, чтобы подсчитывать, сколько было предпринято попыток. Результат измененной версии guessnumber отражен в листинге 2. Рассмотрим код guessnumber2.cmd. Видно, что два командных файла имеют различия только в нескольких строках, которые вводят новую переменную среды guessesleft. Я ввел эту переменную, которую помнят все, кто работал с любой операционной системой Microsoft начиная с DOS 2.0:

set guessesleft=16

В этом операторе появляются новые арифметические возможности команды:

set/a guessesleft=%guessesleft%-1

Все дело в ключе /a, который позволяет выполнять не только сложение, вычитание, умножение и деление, но и операции по модулю, а также несколько поразрядных логических операций.

Надеюсь, эти примеры добавят аргументов, чтобы вернуться к проверенному помощнику — команде Set, возможности которой недооценены.

В тех же случаях, когда не удается достичь желаемой цели с помощью Set, можно задействовать ее усовершенствованную версию — команду Setx.

Для многих пакетных файлов, использующих переменную среды, ее значение устанавливается путем запроса ввода данных пользователем (с помощью переключателя/p, как было показано ранее), либо с помощью простой команды Set:

set myname=Mark

Эта команда работает отлично, но иногда возникает необходимость ввести в переменную среды другие виды информации — в частности, результат выполнения команды (например, время на передачу и подтверждение приема сигнала проверки связи по Ping) или значение параметра реестра.

Уже по меньшей мере в течение 10 лет это позволяет делать инструмент из Resource Kit под названием Setx, который в Windows Vista и более новых версиях уже входит в состав операционной системы. Как будет показано далее, поведение Setx может оказаться несколько нестандартным, но этот инструмент способен составить основу для разработки некоторых мощных пакетных файлов.

Предположим, например, что нам требуется извлечь значение параметра реестра и поместить его в переменную среды. Нужно найти имя организации, на которое зарегистрирована данная копия Windows — для отчета, либо для проверки правильности имени, указанного в реестре. Windows хранит эту информацию в параметре HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\Current Version\RegisteredOrganization. Приведенная ниже команда

setx regorg/k "HKLM\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\RegisteredOrganization"

позволяет извлечь его значение и поместить в переменную среды.

С помощью Setx можно извлекать данные не только из реестра, но и из других источников. В нашем случае параметр /k направляет поиск в реестр.

На первый взгляд строка в кавычках представляет подраздел реестра, однако это не так. Данная строка содержит комбинацию имени подраздела реестра и имени значимого элемента реестра, чье содержимое требуется сохранить в переменной среды regorg. При успешном выполнении этой команды ее результат выглядит следующим образом:

Extracted value: "MR&D". SUCCESS: Specified value was saved.

Для Setx не предусмотрен параметр для подавления столь многословного ответа, однако появление на экране лишней информации можно блокировать, перенаправив выход на устройство nul:

setx regorg/k “HKLM\SOFTWARE\Microsoft\Windows NT\ CurrentVersion\RegisteredOrganization” >nul

Итак, в системе появилась переменная среды regorg. Теперь вспомним об упомянутой ранее «странности поведения». По причинам, известным лишь разработчикам Setx, эта команда создает переменную среды и наполняет ее содержимым, но не передает соответствующую информацию той ее копии, которая находится в текущем окне командной строки. Поэтому любая команда, вводимая в окне командной строки, где была введена команда Setx, не сможет увидеть значение, только что созданное для переменной среды. Например, в ответ на ввод set regorg будет выдано сообщение об ошибке: Environment variable regorg not defined («Переменная среды regorg не определена»). Чтобы увидеть новую переменную среды, необходимо открыть второе окно командной строки и ввести там нужную команду.

Тот, кто работает с переменными среды, знает, что одни переменные Windows хранит в профиле системы, другие — в профиле пользователя. В ответ на ввод в командной строке команды set выдаются как системные переменные среды, так и переменные среды из профиля пользователя, без указания их источника. Насколько мне известно, не существует способа применения команды Set, позволяющего вывести только системные переменные среды, либо только переменные среды, относящиеся к пользователю. Однако разницу можно увидеть, если щелкнуть кнопку «Переменные среды» на вкладке «Дополнительно» на странице «Свойства системы» элемента «Компьютер». Параметр /m команды Setx позволяет обеспечить большую степень контроля над создаваемыми переменными среды. Когда используется этот параметр, новая переменная среды сохраняется в профиле системы, а не в профиле пользователя.

Команда Setx может оказаться полезной при углубленной разработке пакетных файлов. В следующих статьях рубрики мы рассмотрим и другие возможности этой команды.

Марк Минаси ([email protected]) — редактор Windows IT Pro, MCSE и автор книги Mastering Windows Server 2003 (издательство Sybex)

www.osp.ru