Переменные среды и абсолютные пути Windows

В операционной системе Windows существует целый набор переменных среды, которые можно использовать в скриптах как абсолютные пути до нужного места, как пример %PROGRAMFILES%, или получать нужные показания, как например %DATE%. Достаточно полный список ниже.

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 or TMPВозвращает временные каталоги, по умолчанию используемые приложениями, которые доступны пользователям, выполнившим вход в систему. Некоторые приложения требуют переменную TEMP, другие — переменную TMP. Потенциально TEMP и TMP могут указывать на разные каталоги, но обычно — совпадают.
TIMEВозвращает текущее время. Использует тот же формат, что и команда time /t. Создаётся командой Cmd.exe. Дополнительные сведения о команде time см. в разделе Time.
USERDOMAINИмя домена, которому принадлежит текущий пользователь.
USERNAMEИмя текущего пользователя.
USERPROFILEПуть к профилю текущего пользователя.
WINDIRКаталог, в котором установлена Windows.

В системе существует метод взятия нужной части переменной (грубый аналог sed в Linux), работает это все по следующей схеме:

%DATE:~3,2%

Первая цифра после :~ — это номер символа, с которого мы начинаем брать значение, вторая цифра это сколько символов захватывать.

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

"%P%\baza_%date%_%curtime%.7z"

 

Смысл тут вот в чем, те же часы имеют 2 знака, но в те часы когда время обозначается 1 знаком (8:00), переменная берётся с пробелов в начале (получаются файлы такого вида baza_ 7.10.2012_11-55-31.7z), ведь изначально мы ее определили как двузначную и столько отрезаем. Что бы не портить себе нервы подобными незаметными мелочами, просто берем в кавычки, тогда пробелы будут отрабатываться нормально.

Смотрите так же:

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.