Как изменить переменные среды в Windows 7. Как создать переменную среды
Как изменить переменные среды в Windows 7
Переменная среды (окружения) в Виндовс хранит информацию о настройках ОС и пользовательских данных. Обозначается она с помощью парного символа «%», например:
%USERNAME%
С помощью этих переменных можно передавать необходимую информацию операционной системе. Например, %PATH% хранит список директорий, в которых Виндовс ищет исполняемые файлы, если путь к ним не задан явно. %TEMP% хранит временные файлы, а %APPDATA% — настройки программ пользователя.
Зачем редактировать переменные
Изменение переменных среды может помочь, если вы хотите перенести папку «Temp» или «AppData» в другое место. Редактирование %PATH% даст возможность запускать программы из «Командной строки», не указывая каждый раз длинный путь к файлу. Давайте рассмотрим методы, которые помогут в достижении этих целей.
Способ 1: Свойства «Компьютера»
В качестве примера программы, которую необходимо запустить, используем Skype. Попытавшись активировать это приложение из «Командной строки», вы получите такую ошибку:
Это происходит потому, что вы не задали полный путь к исполняемому файлу. В нашем случае полный путь выглядит вот так:
"C:\Program Files (x86)\Skype\Phone\Skype.exe"
Чтобы это не повторять каждый раз, давайте добавим директорию Скайпа в переменную %PATH%.
- В меню «Пуск» нажмите правой кнопкой мыши на «Компьютер» и выберите «Свойства».
- Затем перейдите на «Дополнительные параметры системы».
- На вкладке «Дополнительно» нажмите на «Переменные среды».
- Откроется окно с различными переменными. Выберите «Path» и нажмите «Изменить».
- Теперь необходимо дописать путь к нашей директории.
Путь нужно указывать не к самому файлу, а к папке, в которой он находится. Обратите внимание, что разделителем между директориями является «;».
Дописываем путь:
C:\Program Files (x86)\Skype\Phone
и жмем «ОК».
- Если есть необходимость, таким же образом вносим изменения в другие переменные и жмем «ОК».
- Завершаем сеанс пользователя, чтобы изменения сохранились в системе. Снова заходим в «Командную строку» и пытаемся запустить Скайп, введя
skype
Готово! Теперь вы можете запускать любую программу, а не только Skype, находясь в любой директории в «Командной строке».
Способ 2: «Командная строка»
Рассмотрим случай, когда мы хотим установить %APPDATA% на диск «D». Эта переменная отсутствует в «Переменных среды», поэтому ее невозможно изменить первым способом.
- Чтобы узнать текущее значение переменной, в «Командной строке» введите:
- Для того чтобы изменить ее значение, введите:
- Проверим текущее значение %APPDATA%, введя:
echo %APPDATA%
В нашем случае эта папка находится по адресу:
C:\Users\Настя\AppData\Roaming
SET APPDATA=D:\APPDATA
Внимание! Убедитесь, что точно знаете зачем вы это делаете, поскольку необдуманные действия могут привести к неработоспособности Виндовс.
echo %APPDATA%
Значение успешно изменено.
Изменение значений переменных среды требует определенных знаний в этой сфере. Не играйтесь со значениями и не редактируйте их наугад, чтобы не навредить ОС. Хорошо изучите теоретический материал, и только после этого переходите к практике.
Мы рады, что смогли помочь Вам в решении проблемы.Помогла ли вам эта статья?
Да Нетlumpics.ru
Переменные среды Windows. | Настройка серверов windows и linux
Добрый день уважаемые читатели и гости блога, сегодня я с вами хочу обсудить вот такую тему, что такое переменные среды Windows, где их можно использовать, как в обычной практике пользователя, так и в практике системного администратора, я вам приведу несколько примеров. Как все это дело настраивается и изменяется под ваши нужны, на мой взгляд это фундаментальные знания, понимание которых вам лучше покажет принцип работы операционных систем семейства Windows.
Что такое переменные среды windows
Давайте разберемся в понятии, и так переменная окружения (environment variable) это специального рода ссылки уменьшенного размера, на определенные объекты операционной системы Windows, используемые разными программами для хранения информации и взаимодействия с ней. Можно провести аналогию с относительными ссылками на сайтах, где нет явного указания на протокол. Чаще всего это пути до конкретных директорий в ОС.
Где используют переменные среды Windows
Приведу несколько примеров:
- В скриптах > когда нужно например каждому пользователю сделать какую-то настройку, для примера положить на рабочий стол новую папку с документами. Так как для каждого пользователя путь до рабочего стола свой, вида C:\Users\lacky\Desktop, а можно обратиться и по относительному пути за счет переменной %HOMEPATH%, если вы в проводнике введете %HOMEPATH%\Desktop, то попадете на рабочий стол текущего пользователя.
- в групповой политике, для настройки пользовательских окружений, например перемещаемые профили.
- Оптимизация кода > если в коде очень часто используются одни и те же пути к файлам или папкам, а так же ключам реестра, вы можете легко назначить короткую переменную для дальнейшего использования. Ниже я вам приведу сводный список по переменным средам 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. Нажимаем WIN+R и вводим regedit. В открывшемся окне редактор реестра, перейдите в ветку:
Для просмотра переменных для компьютера
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
Для просмотра переменных для пользователя
HKEY_CURRENT_USER\Environment
Создаем переменные среды windows 10
ПО мимо уже имеющихся переменных Windows 10, вы можете создать и новые, это очень легко и не запрещается. Что от вас требуется, вам необходимо зайти в свойства системы. Тут несколько методов, если мы говорим про Windows 10, то можно сделать через правый клик по кнопке "Пуск", выбрав пункт система.
Универсальный метод, это зайти в свойства моего компьютера или нажать сочетание клавиш WIN+Pause Breake.
С окне свойства системы, вы должны перейти в пункт "Дополнительные параметры системы"
Далее пункт переменные среды.
И перед вами два вида переменных сред Windows:
- Временные переменные temp
- Системные переменные
И те и другие можно легко изменить или создать.
Для примера я создам новую системную переменную, назову ее SYSPREP и укажу путь до папки C:\Windows\System32\Sysprep
Проверяю, что все добавилось. И теперь вбив переменную %SYSPREP% у меня откроется C:\Windows\System32\Sysprep.
Как видите тут ничего сложного нет, благодаря вот таким вещам вы можете сильно упростить себе жизнь и экономить много времени.
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)
- Измените переменную PATH variablePATH=/usr/local/jdk1.8.0/bin:$PATH export PATH
- Сохранить изменения и закрыть окно
- Загрузите файл автозагрузки % . /.profile
- Убедитесь, что путь задан, повторив команду java% java -version
Отредактируйте файл автозагрузки (~/.cshrc)
- Задайте путь set path=(/usr/local/jdk1.8.0/bin $path)
- Сохранить изменения и закрыть окно
- Загрузите файл автозагрузки% source ~/.cshrc
- Убедитесь, что путь задан, повторив команду 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 - что это?
Для начала обозначим само понятие переменных сред. Выражаясь математическим языком, это есть средство доступа к некоторым временным файлам без указания абсолютного пути, когда папки TMP или TEMP скрыты от глаз пользователя.
В принципе, найти их можно совершенно просто, если включить отображение скрытых объектов в меню вида.
Но ведь можно обойтись и без этого. Пути задания будут рассмотрены несколько позже (переменные среды, path Windows 7), а пока посмотрим на использование основного оператора.
Использование основного оператора
При доступе к некоторым функциям системы или даже при поиске в том же «Проводнике» можно не указывать абсолютные пути к файлам или папкам. Переменные среды в Windows 7 или в любой другой системе рассчитаны на то, чтобы использовать символ процентов. Он как раз и является тем средством, которое позволяет обойти ограничения при выключенном отображении скрытых файлов и папок или пользоваться так называемым обобщенным поиском. В примере ниже видно, что он производится по любому имени юзера.
В данном случае можно просто задать путь, например, %Username%, а система отобразит все файлы и папки, имеющие такое название, причем даже скрытые. Как уже понятно, указывать диск не нужно.
Неправильные переменные среды «Центра обновления» Windows 7
Но вот самая большая беда состоит в установке апдейтов, при которой в некоторых случаях возникают сбои. Тут проблема кроется в том, что временные файлы просто невозможно сохранить на винчестере. Конечно, по умолчанию папки настроены, однако их переполнение может привести к непредсказуемым последствиям.
Для начала стоит полностью очистить кэш диска и браузера, после чего воспользоваться средством очистки диска, которое имеется в самой системе. Доступ к нему можно получить через свойства диска, где в меню выбирается соответствующая кнопка.
К настройке самих переменных сред доступ осуществляется через меню свойств компьютера, где выбирается вкладка дополнительных параметров. Снизу слева есть кнопка перехода в настройки переменных сред.
Кстати сказать, если устанавливать тот же пакет JAVA SDK, система автоматически место, отведенное под хранение временных объектов, не воспримет, поэтому в настройках путь придется настраивать вручную, указав соответствующую папку.
Как произвести восстановление параметров?
Восстановить переменные среды в Windows 7 можно совершенно просто. Если уж на то пошло, нет ничего проще, нежели воспользоваться откатом системы (либо из «Панели управления», либо из загрузочного меню, вызываемого клавишей F8 при старте системы, где выбирается последняя работоспособная конфигурация).
Но поменять параметры можно и вручную, открыв свойства указанной среды кнопкой изменения параметров, после чего нужно будет просто указать нужный путь к каталогу (например, C:\Temp). Это работает и для папки TEMP, и для директории TMP.
Вместо послесловия
Как видим, переменные среды в Windows 7 или в любой другой системе настроить можно достаточно просто. Однако нужно четко понимать, для чего они используются. Конечно, рядовой юзер вряд ли будет заниматься изменением таких параметров, но для тех, кто пользуется дополнительными платформами, без этого просто не обойтись, тем более что некоторые программные продукты подразумевает именно ручную настройку, как в случае с любым пакетом SDK.
Кроме того, если возникают ошибки с обновлением системы, можно воспользоваться некоторыми дополнительными средствами. Многие специалисты рекомендуют установить некие фиксеры вроде Microsoft Fix It! или что-то подобное. Кстати, именно утилита от Microsoft позволяет избавиться от множества проблем, включая даже неполадки с сетевыми подключениями.
И речь уже не идет о профессиональных программах-оптимизаторах, которые могут устранять любые ошибки автоматически и без участия пользователя в самом процессе. Но и среди них следует выбирать именно то, что нужно. Например, восстановление лучше производить при помощи программных продуктов iObit, а исправление неполадок – утилитой CCleaner.
Тем не менее редактирование путей доступа к временным папкам в любом случае придется производить только в ручном режиме, особенно если по каким-то причинам произошли программные сбои по вине системы. Для этих компонентов иногда даже восстановление системы не помогает. И тогда придется удалять пакеты обновлений, которые, собственно, и могут вызывать ошибки подобного рода. И здесь специально не рассматривалась команда SET, которая позволяет управлять некоторыми параметрами, поскольку большинству пользователей она просто не пригодится.
fb.ru
Переменные окружения Windows дают программам информацию об операционной системе. Ниже в таблице приведен стандартный список переменных окружения, которые создает Windows. Различные программы также создают свои переменные окружения, которые используют в служебных целях для хранения какой-либо информации.
[Как просматривать и редактировать переменные окружения] Просматривать переменные окружения удобнее всего с помощью команды 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 для всей системы (в нижней части окна "Системные переменные"). Для переменной окружения 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