Переменная среды windows

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

В служебной программе NetShell имеется команда для протокола IP. Следуйте приведенным ниже указаниям, чтобы вручную сбросить параметры TCP/IP при помощи команды 

  1. Чтобы открыть командную строку, нажмите кнопкузатем в полеНайти программы и файлы
  2. Щелкните правой кнопкой мыши значок файлаи выберите командуЗапуск от имени администратора
  3. Контроль учетных записей
  4. Скопируйте и вставьте (или введите самостоятельно) в командной строке следующую команду и нажмите клавишу ВВОД:
    netsh int ip reset c:\resetlog.txt
    . Если не хотите указывать путь для сохранения файла журнала, используйте следующую команду:
    netsh int ip reset resetlog.txt
  5. Перезагрузите компьютер.

При выполнении команды, она перезаписывает два ключа в реестре, которые используются TCP/IP. Это то же самое, что удалить и вновь установить протокол. Команда  перезаписывает следующие два ключа в реестре:

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

Первый пример, c:\resetlog.txt, создает путь, куда файл журнала будет сохранен. Второй пример, resetlog.txt, создает файл журнала в текущем каталоге. Если журнал с таким именем уже существует, новый журнал будет добавлен в конец файла.

В современных ОС компании Microsoft на платформе NT для получения информации о системе используются следующие переменные (Полужирным выделен текст, относящийся только к Windows Vista/7):

НазваниеТипОписание
ALLUSERSPROFILEлокальнаяВозвращает размещение профиля «All Users». В Windows 7 возвращает путь к папке C:\ProgramData\.
APPDATAсистемнаяВозвращает используемое по умолчанию размещение данных приложений. В Windows XP это C:\Documents and Settings\%UserName%\Application Data. В Windows 7 – C:\Users\%UserName%\AppData\Roaming.
CDлокальнаяУказывает путь к текущему каталогу. Идентична команде CD без аргументов.
CLIENTNAMEлокальная динамическаяПеременная определена только в среде удаленного подключения к рабочему столу. Хранит имя компьютера (%COMPUTERNAME%) клиента удаленного доступа.
CMDCMDLINEлокальнаяТочная команда, использованная для запуска текущего cmd.exe.
CMDEXTVERSIONсистемнаяВерсия текущего Command Processor Extensions.
COMMONPROGRAMFILESсистемнаяРасположение каталога “Common Files” (обычно %ProgramFiles%\Common Files).
COMMONPROGRAMFILES(x86)системнаяРасположение каталога “Common Files” в Program Files (x86) для 64-разрядной ОС (обычно %ProgramFiles(x86)%\Common Files).
COMPUTERNAMEсистемнаяИмя компьютера
COMSPECсистемнаяПуть к исполняемому файлу командного процессора (shell).
DATEсистемнаяВозвращает текущую дату. Использует тот же формат, что и команда date /t. Создаётся командой Cmd.exe.
ERRORLEVELсистемнаяВозвращает код ошибки последней использовавшейся команды. Значение, не равное нулю, обычно указывает на наличие ошибки.
HOMEDRIVEсистемнаяВозвращает имя диска локальной рабочей станции, связанного с основным каталогом пользователя. Задаётся на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
HOMEPATHсистемнаяВозвращает полный путь к основному каталогу пользователя. Задаётся на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
HOMESHAREсистемнаяВозвращает сетевой путь к общему основному каталогу пользователя. Задаётся на основании расположения основного каталога. Основной каталог пользователя указывается в оснастке «Локальные пользователи и группы».
LOCALAPPDATAсистемнаяВозвращает используемое по умолчанию локальное размещение данных приложений (C:\Users\%UserName%\AppData\Local).
LOGONSERVERлокальнаяИмя контроллера домена, использовавшегося для авторизации текущего пользователя.
NUMBER_OF_PROCESSORSсистемнаяКоличество процессоров в системе (фактически, количество ядер).
OSсистемнаяНазвание операционной системы. Windows XP и Windows 2000 отображаются как Windows_NT.
PATHсистемнаяУказывает путь поиска исполняемых файлов.
PATHEXTсистемнаяВозвращает список расширений файлов, которые рассматриваются операционной системой как исполняемые.
PROCESSOR_ARCHITECTUREсистемнаяАрхитектура процессора. Возможные варианты: x86, IA64, AMD64.
PROCESSOR_IDENTIFIERсистемнаяОписание процессора (в Интернете часто встречается ошибочное написание PROCESSOR_IDENTFIER – пропущена буква).
PROCESSOR_LEVELсистемнаяНомер модели процессора.
PROCESSOR_REVISIONсистемнаяРевизия процессора.
PROGRAMDATAсистемнаяВозвращает путь к каталогу C:\ProgramData\ (аналогично ALLUSERSPROFILE).
PROGRAMFILESсистемнаяПуть к каталогу Program Files.
PROGRAMFILES(x86)системнаяПуть к каталогу Program Files (x86) в 64-разрядных системах для приложений архитектуры x86.
PROMPTлокальнаяВозвращает параметры командной строки для текущего интерпретатора. Создаётся командой Cmd.exe.
PUBLICсистемнаяВ Windows 7 возвращает путь к каталогу C:\Users\Public.
RANDOMсистемнаяСлучайное десятичное число от 0 до 32767. Генерируется Cmd.exe.
SESSIONNAMEлокальнаяХранит имя активного пользовательского сеанса. При локальном входе имеет значение “Console”, при удаленном доступе имеет вид RDP-Tcp#<номер сеанса>
SYSTEMDRIVEсистемнаяДиск, на котором расположен корневой каталог Windows.
SYSTEMROOTсистемнаяПуть к корневому каталогу Windows.
TEMP и TMPсистемная и локальнаяВозвращает временные каталоги, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP. Потенциально TEMP и TMP могут указывать на разные каталоги, но обычно совпадают.
TIMEсистемнаяВозвращает текущее время. Использует тот же формат, что и команда time /t. Создаётся командой Cmd.exe. Дополнительные сведения о команде time см. в разделе Time.
USERDOMAINлокальнаяИмя домена, которому принадлежит текущий пользователь.
USERNAMEлокальнаяИмя текущего пользователя.
USERPROFILEлокальнаяПуть к профилю текущего пользователя.
WINDIRсистемнаяКаталог, в котором установлена Windows.
:/>  Как включить пролистывание на тачпаде двумя пальцами windows 10

Работа с переменными

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

echo %PROCESSOR_ARCHITECTURE%

Чтобы установить значение переменной:

SET TEMP=C:\TEMP

Также необходимо помнить, что, в отличие от UNIX-систем, в DOS и в стандартной командной строке Windows переменные среды не наследуются запускаемыми процессами, а используются совместно. Это позволяет, например, возвращать через них результаты работы программ, но, с другой стороны, создаёт возможность порчи или переполнения. Особенно актуально переполнение для переменной PATH, поскольку она часто дополняется при работе различных скриптов. При возникновении такого переполнения достаточно просто перезапустить интерпретатор командной строки. Интерпретаторы, портированные из UNIX-систем (например, Z-shell), такой проблеме не подвержены.

Получить значение переменной в программном коде можно с помощью метода ExpandEnvironmentStrings COM-объекта WScript.Shell:

WScriptShell = ObjCreate("WScript.Shell")
UserName = WScriptShell.ExpandEnvironmentStrings("%USERNAME%")

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