Меню Рубрики

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

Команда SET — работа с переменными среды Windows

&nbsp &nbsp Команда SET используется для просмотра и изменения переменных среды окружения в командной строке Windows. Переменные окружения — это переменные, принимаемые значения которых характеризуют среду, в которой выполняется текущая программа — пути системных файлов, сведения об аппаратных средствах, каталоги пользователя и т.п. Значения переменных среды формируются в процессе загрузки Windows, регистрации пользователя в системе, при выполнении отдельных процессов или с помощью команды SET . Для просмотра значения, принимаемого конкретной переменной можно воспользоваться командой :

SET переменная
SET PATH — отобразить значение переменной PATH
Для создания новой переменной, или изменения значения существующей, используется команда :

переменная — Имя переменной среды.
строка — Строка символов, присваиваемая указанной переменной.

SET MyName=Vasya — установить значение переменной MyName

SET path=C:\progs;%path% — изменить значение переменной PATH , добавив в начало строки C:\progs

Значение, принимаемое переменной , доступно для обработки в командных файлах, при использовании ее имени, заключенного в знаки процента — % . Например команда выдачи текста на дисплей ECHO в виде:

ECHO date — выведет на экран слово «date», а команда
ECHO %date% выведет на экран значение переменной date , т.е. текущую дату в формате операционной системы.

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

ALLUSERSPROFILE=C:\ProgramData
APPDATA=C:\Users\Usr\AppData\Roaming
CommonProgramFiles=C:\Program Files\Common Files
COMPUTERNAME=TEST7
ComSpec=C:\windows\system32\cmd.exe
FP_NO_HOST_CHECK=NO
HOMEDRIVE=C:
HOMEPATH=\Users\Usr
LOCALAPPDATA=C:\Users\Usr\AppData\Local
LOGONSERVER=\\TEST7
NUMBER_OF_PROCESSORS=2
OS=Windows_NT
Path=C:\windows\system32;C:\windows;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS; .VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=x86
PROCESSOR_IDENTIFIER=x86 Family 15 Model 3 Stepping 4, GenuineIntel
PROCESSOR_LEVEL=15
PROCESSOR_REVISION=0304
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\windows\system32\Windows PowerShell\v1.0\Modules\
PUBLIC=C:\Users\Public
SystemDrive=C:
SystemRoot=C:\windows
TEMP=C:\Users\Usr\AppData \Local\Temp
TMP=C:\Users\Usr\AppData \Local\Temp
USERDOMAIN=test7
USERNAME=Usr
USERPROFILE=C:\Users\Usr
windir=C:\windows

Кроме переменных, отображаемых в списке, при вызове команды SET, существуют и другие, значения которых изменяется динамически:

%CD% — принимает значение текущего каталога.
%DATE% — принимает значение текущей даты.
%TIME% — принимает значение текущего времени.
%RANDOM% — значение случайного числа в диапазоне между 0 и 32767.
%ERRORLEVEL% — текущее значение ERRORLEVEL, специальной переменной, которая используется в качестве признака результата выполнения программы.
%CMDEXTVERSION% значение версии расширенной обработки команд CMD.EXE.
%CMDCMDLINE% — раскрывается в исходную командную строку, которая вызвала командный процессор .

Если при вызове команды SET указать только часть имени, то будет выведен список переменных, имена которых начинаются с указанной строки. Например:

SET U — выведет значения всех переменных, имена которых начинаются с ‘U’.

Команда SET поддерживает два дополнительных ключа:

SET /P variable=[promptString]

Ключ /A указывает, что строка справа от знака равенства является числовым выражением, значение которого вычисляется. Обработчик выражений очень прост и поддерживает следующие операции, перечисленные в порядке убывания приоритета:

()
* / %
+ —
>
&
^
|
=
,
— группировка
— арифметические операторы
— арифметические операторы
— двоичный сдвиг
— двоичное И
— двоичное исключающее ИЛИ
— двоичное ИЛИ
— присвоение
— разделитель операторов

При использовании любых логических или двоичных операторов необходимо заключить строку выражения в кавычки. Любые нечисловые строки в выражении рассматриваются как имена переменных среды, значения которых преобразуются в числовой вид перед использованием. Если переменная с указанным именем не определена в системе, вместо нее подставляется нулевое значение. Это позволяет выполнять арифметические операции со значениями переменных среды, причем не нужно вводить знаки % для получения значений. Если команда SET /A вызывается из командной строки, а не из пакетного файла, она выводит окончательное значение выражения. Слева от любого оператора присваивания должно стоять имя переменной среды. Числовые значения рассматриваются как десятичные, если перед ними не стоит префикс:

0x — для шестнадцатеричных чисел
0 — для восьмеричных чисел.

Пример использования префиксов:

SET /A REZ=0xA+012
ECHO %REZ%

В данном командном файле значение переменной REZ вычисляется сложением числа 10, представленного в шестнадцатеричном виде ( 0xA ) и числа 10 , представленного в восьмеричном ( 012 ).

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

@ECHO OFF
SET /P NAME=Введите имя пользователя:
SET /P pass=Введите пароль:
ECHO Имя пользователя — %NAME% , Пароль — %PASS%

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

переменная:строка1=строка2 — заменяет в принимаемом значении переменной строку1 на строку2

Следующий командный файл использует замену символа «точка» на символ «тире» в значении переменной, соответствующем текущей дате:

@ECHO OFF
set tm=%DATE%
ECHO Дата1 = %tm%
SET tm=%DATE:.=-%
ECHO Дата2 = %tm%

Для выделения части значения, принимаемого переменной, используется следующая конструкция:

x,y — где x — число пропускаемых символов от начала строки, а y — количество символов, используемых в качестве значения переменной.

Следующий пример использует отображение текущего времени без секунд и долей секунд (только первые 5 символов из стандартного значения переменной TIME):

@ECHO OFF
set tm=%TIME%
ECHO Время1 = %tm%
SET tm=%TIME:

0,5%
ECHO Время2 = %tm%

Если значение y ( длина ) не указана, то используется оставшееся до конца строки значение переменной. Если значение y отрицательно, то используется часть строки значения переменной от конца. Предыдущий пример можно изменить , указав, что в принимаемом значении времени отбрасываются 6 символов от конца:

@ECHO OFF
set tm=%TIME%
ECHO Время1 = %tm%
SET tm=%TIME:

Возможно использование число пропусков не задано, и используется отрицательное число, то принимаемое значение будет частью переменной от конца строки:

-10% — извлечет последние 10 символов переменной PATH

. Нулевое значение можно не указывать, сохраняя формат подстановки:

0,-2% эквивалентно %PATH:

При использовании переменных окружения в командных файлах существует определенное ограничение, связанное с тем фактом, что присваиваемое значение остается без изменения при его модификации внутри группы команд, задаваемой скобками, например в командах IF или FOR . Для обхода данного ограничения используется запуск командного процессора с параметром /V:ON и вместо знаков процента, для получения принимаемого переменной значения, используются восклицательные знаки. Кроме того, существует возможность использовать стандартный запуск командного процессора, но с локальным включением данного режима командой :

Разница в результатах использования значений переменных довольно наглядно демонстрируется следующим командным файлом:

Setlocal EnableDelayedExpansion
@ECHO OFF
set VAR=before
if «%VAR%» == «before» (
set VAR=after
if «!VAR!» == «after» @echo Со знаком процента=%VAR% , Со знаком вопроса=!VAR!
)

Команда set VAR=after выполняется внутри подпрограммы, ограниченной скобками и, если убрать команду Setlocal EnableDelayedExpansion или не использовать для получения значения переменной VAR восклицательные знаки, ее значение останется старым ( тем, что было установлено до входа в подпрограмму ). Аналогичная же проблема наблюдается и тогда, когда значение переменной изменяется внутри цикла команды FOR . Например, для получения списка файлов текущего каталога такой командный файл не будет работать:

set LIST=
for %%i in (*) do set LIST=%LIST% %%i
echo %LIST%

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

Setlocal EnableDelayedExpansion
set LIST=
for %%i in (*) do set LIST=!LIST! %%i
echo %LIST%

Теперь, значение переменной LIST внутри цикла FOR будет изменяться, последовательно принимая значения имен файлов, разделенных пробелом ( set LIST=!LIST! %%i )

Источник

Как изменить системную переменную path в Windows 7

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

Сегодня мы не будем разговаривать о том, что такое командная строка и какие стандартные утилиты командной строки есть в Windows, так как об этом мы уже разговаривали в материале Основы командной строки Windows.

Для чего нужна системная переменная path

Системная переменная path нужна нам для того, чтобы мы могли добавлять свои утилиты в командную строку CMD.exe, а если говорить конкретней, то добавлять каталоги, т.е. пути к этим каталогам для того, что ОС могла определить по названию утилиты, где она расположена, и запустить ее.

Если говорить на примере, то допустим, Вы открываете командную строку, набираете команду ipconfig (служит для конфигурирования сетевых интерфейсов) и в момент запуска командная строка не знает, где располагается данная утилита, поэтому она начинает ее искать. Сначала в текущем каталоге, затем в системных каталогах, которые как раз, и указаны в системной переменной path. Другими словами, если Вы написали свою консольную программу и хотите ее запустить так же, как ipconfig, то у Вас это не получиться, так как ОС не знает, где же лежит сама программа. Поэтому нам нужно переходить в каталог с программой или писать полный путь к исполняемому файлу, для того чтобы запустить свою утилиту. Поэтому, если Вы часто пользуетесь какой-нибудь консольной программой, которой нет, в стандартной сборке Windows и не хотите копировать ее в системные каталоги, то лучше всего будет создать свой каталог и добавить его в системную переменную path.

Пример

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

Примечание! Если Вы хотите, чтобы в командной строке выводилась кириллица, то сохраните бат файл с кодировкой OEM 866, это можно сделать с помощью текстового редактора Notepad++.

Сохраним с названием privet.bat на диске C в каталоге test.

Теперь мы запускаем командную строку (ОС Windows 7) «Пуск -> Выполнить -> cmd».

И сразу попробуем запустить нашу утилиту, и посмотрим, что у нас из этого выйдет:

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

Т.е. с указанием полного пути к утилите, то тогда она конечно запустится. Или также можно перейти в каталог test и уже от туда запустить утилиту, например:

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

Примечание! Если Вам не нравится фон или цвет шрифта командной строки, то Вы легко можете изменить его, а как мы с Вами разговаривали в статье Настройка внешнего вида командной строки Windows.

Изменяем системную переменную path в Windows 7

Для этого открываем «Панель управления -> Система -> Дополнительные параметры системы».

Затем выбираем «Переменные среды».

После у Вас откроется окно «Переменные среды» и Вы в нижней части окна в списке «Системных переменных» ищите переменную path и жмете «Изменить».

В итоге у Вас откроется небольшое окошко «Изменение системной переменной», где Вы в поле «Значение переменной» дописываете в конце через точку запятой, путь к каталогу, в котором Вы будете хранить свои консольные утилиты. Например, я указал C:\test. После ввода жмем «ОК».

А теперь давайте проверим. Будем делать в точности, как и в первый раз, т.е. открываем командную строку и сразу пишем privet.bat и смотрим

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

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

Я думаю достаточно, если есть вопросы, задавайте в комментариях. Удачи!

Источник

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

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

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

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

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

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

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

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

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

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

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

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

На вкладке «Дополнительно» нажмите на «Переменные среды».

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

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

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

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

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

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

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

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

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

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

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

Для того чтобы изменить ее значение, введите:

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Изменение пароля для входа в windows 10
  • Изменение ориентации экрана windows 10
  • Изменение окна приветствия в windows 7
  • Изменение названия сети в windows 10
  • Изменение надписи приветствия windows 7