Переменная окружения - Environment variable

An переменная окружения это с динамическим именем ценить что может повлиять на бег процессы будет вести себя на компьютере. Они являются частью среды, в которой выполняется процесс. Например, запущенный процесс может запросить значение переменной среды TEMP, чтобы найти подходящее место для хранения временные файлы, или переменную HOME или USERPROFILE, чтобы найти структура каталогов принадлежит пользователю, запускающему процесс.

В современном виде они были представлены в 1979 г. Версия 7 Unix, поэтому включены во все Unix Операционная система ароматы и варианты с этого момента, включая Linux и macOS. Из ПК DOS 2.0 в 1982 году все преуспели Microsoft операционные системы, в том числе Майкрософт Виндоус, и OS / 2 также включили их как функцию, хотя с несколько другим синтаксисом, использованием и стандартными именами переменных.

Дизайн

В целом Unix и Unix-подобный систем, каждый процесс имеет свой отдельный набор среды переменные. По умолчанию, когда процесс создается, он наследует дублирующую среду своего родительского процесса, за исключением явных изменений, сделанных родителем при создании дочернего процесса. На API уровень, эти изменения должны производиться между запусками вилка и exec. В качестве альтернативы из командные оболочки Такие как трепать, пользователь может изменять переменные среды для вызова конкретной команды, косвенно вызывая ее через env или используя ENVIRONMENT_VARIABLE = VALUE <команда> обозначение. Запущенная программа может получить доступ к значениям переменных среды для целей конфигурации.

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

В Unix переменная среды, измененная в сценарии или скомпилированной программе, влияет только на этот процесс и, возможно, на дочерние процессы. Это не повлияет на родительский процесс и любые несвязанные процессы. Точно так же изменение или удаление значения переменной внутри ДОС командный файл изменит переменную на время COMMAND.COMсуществование.

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

На Unix, а Setuid программе предоставляется среда, выбранная ее вызывающей стороной, но она запускается с другими полномочиями, чем вызывающая программа. В динамический компоновщик обычно загружает код из мест, указанных переменными среды $ LD_LIBRARY_PATH и $ LD_PRELOAD и запустить его с полномочиями процесса. Если бы это делала программа setuid, она была бы небезопасной, потому что ее вызывающий мог заставить ее запустить произвольный код и, следовательно, злоупотребить своими полномочиями. По этой причине, libc сбрасывает эти переменные среды при запуске в процессе setuid. Программы setuid обычно сбрасывают неизвестные переменные среды и проверяют другие или устанавливают для них разумные значения.

Синтаксис

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

эхо $ HOME

В интерпретаторах командной строки DOS, OS / 2 и Windows, таких как COMMAND.COM и cmd.exe, пользователь должен ввести это:

ЭХО %ДОМА%

В Windows PowerShell, пользователь должен ввести это:

Запись-вывод $ env: HOMEPATH

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

Назначение

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

Unix

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

ПЕРЕМЕННАЯ=ценить         #export ПЕРЕМЕННАЯ        # за Борн и родственные оболочки
экспорт ПЕРЕМЕННАЯ=ценить  # за кш, трепать, и родственные оболочки
Setenv ПЕРЕМЕННАЯ ценить  # за csh и родственные оболочки

Несколько простых принципов определяют, как переменные среды достигают своего эффекта.

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

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

В Unix и Unix-подобных системах имена переменных среды чувствительны к регистру.

В оболочках Unix переменные можно назначать без экспорт ключевое слово. Переменные, определенные таким образом, отображаются набор команда, но нет истинные переменные среды, поскольку они хранятся только оболочкой и неизвестны всем остальным процессам. В printenv команда не будет отображать их, и дочерние процессы не наследуют их.

ПЕРЕМЕННАЯ=ценить

Синтаксис префикса экспортирует "истинную" переменную среды в дочерний процесс, не влияя на текущий процесс:[1]

ПЕРЕМЕННАЯ=ценить имя_программы [аргументы]

Постоянство переменной среды может быть общесессионным или общесистемным.

сброшен это встроенная команда, реализованная как Оболочка Борна семья (ш, кш, баш и т. д.) и Оболочка C семейство (csh, tcsh и т. д.) Оболочки командной строки Unix. Он сбрасывает переменную оболочки, удаляя ее из памяти и экспортированной среды оболочки. Он реализован как встроенная оболочка, потому что он напрямую манипулирует внутренними компонентами оболочки.[2][3] Переменные оболочки только для чтения нельзя сбросить. Если попытаться отключить переменную, доступную только для чтения, команда unset распечатает сообщение об ошибке и вернет ненулевой код выхода.

DOS, OS / 2 и Windows

В интерпретаторах командной строки DOS, OS / 2 и Windows, таких как COMMAND.COM и cmd.exe, то НАБОР Команда используется для присвоения переменных и значений среды с использованием следующих аргументов:

НАБОР ПЕРЕМЕННАЯ=ценить

В НАБОР Команда без аргументов отображает все переменные среды вместе с их значениями.

Примеры

Примеры переменных среды включают:

  • ДОРОЖКА: список путей к каталогам. Когда Пользователь вводит команду без указания полного пути, этот список проверяется на предмет наличия в нем пути, ведущего к команде.
  • ДОМА (Unix-подобный ) и ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ (Microsoft Windows): укажите, где находится пользователь домашний каталог расположен в файловая система.
  • ГЛАВНАЯ / {. AppName} (Unix-подобный ) и APPDATA {DeveloperName AppName} (Microsoft Windows): для хранения настроек приложения. Многие приложения неправильно используют ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ для настроек приложения в Windows: ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ следует использовать только в диалогах, которые позволяют пользователю выбирать между путями, например Документы / Изображения / Загрузки / Музыка; для программных целей, ДАННЫЕ ПРИЛОЖЕНИЯ (для общих настроек перемещаемого приложения на нескольких устройствах), LOCALAPPDATA (для локальных настроек приложения) или ДАННЫЕ ПРОГРАММЫ (для настроек приложения, совместно используемых несколькими пользователями ОС).[4]
  • СРОК (Unix-подобный ): указывает тип компьютерный терминал или же эмулятор терминала используется (например, vt100 или же тупой).
  • PS1 (Unix-подобный ): указывает, как подсказка отображается в Оболочка Борна и варианты.
  • ПОЧТА (Unix-подобный ): используется, чтобы указать, где находится почта пользователя.
  • ТЕМП.: место, где процессы могут хранить временные файлы.

Истинные переменные среды

Unix

$ PATH
Содержит список каталогов, разделенных двоеточиями, в которых оболочка ищет команды, в имени которых нет косой черты (команды с косой чертой интерпретируются как имена файлов для выполнения, и оболочка пытается выполнить файлы напрямую). Это эквивалентно ДОС, OS / 2 и Windows %ДОРОЖКА% Переменная.
$ HOME
Содержит местонахождение пользователя домашний каталог. Хотя домашний каталог текущего пользователя также можно узнать через C-функции getpwuid и Getuid, $ HOME часто используется для удобства в различных сценариях оболочки (и других контекстах). Использование переменной среды также дает пользователю возможность указать другой каталог.
$ PWD
Эта переменная указывает на текущий каталог. Эквивалентно выводу команды pwd при вызове без аргументов.
$ ДИСПЛЕЙ
Содержит идентификатор дисплея, который X11 программы должны использовать по умолчанию.
$ LD_LIBRARY_PATH
Во многих системах Unix с динамический компоновщик, содержит список каталогов, разделенных двоеточиями, в которых динамический компоновщик должен искать общие объекты при построении образа процесса после exec, перед поиском в любых других каталогах.
$ LIBPATH или же $ SHLIB_PATH
Альтернативы $ LD_LIBRARY_PATH обычно используется в более старых версиях Unix.
$ LANG, $ LC_ALL, $ LC _...
$ LANG используется для установки по умолчанию регион. Например, если значения локали pt_BR, то устанавливается язык (бразильский), португальский и бразильский, где это необходимо. Различные аспекты локализации контролируются индивидуально $ LC_-переменные ($ LC_CTYPE, $ LC_СОБРАТЬ, $ LC_DATE так далее.). $ LC_ALL может использоваться для принудительного использования одного и того же языкового стандарта для всех аспектов.
$ TZ
Относится к часовой пояс. Он может быть в нескольких форматах: либо с указанием самого часового пояса, либо со ссылкой на файл (в / usr / share / zoneinfo).
БРАУЗЕР
Содержит список пользователей, разделенных двоеточиями веб-браузер предпочтения для использования программами, которые должны разрешать пользователю просматривать контент в URL. Предполагается, что браузеры в списке будут выполняться от первого до последнего, останавливаясь после первого успешного. Такая компоновка допускает резервное поведение в различных средах, например, в X11 среда, графический браузер (например, Fire Fox ) можно использовать, но в консольной среде браузер терминальной базы (например, Рысь ) может быть использован. А % s токен может присутствовать, чтобы указать, где должен быть размещен URL-адрес; в противном случае браузер должен запускаться с URL-адресом в качестве первого аргумента.[5][6][7][8][9]


ДОС

Под DOS основная среда предоставляется основным командным процессором, который наследует предварительная среда определено в CONFIG.SYS при первой загрузке. Его размер можно настроить через КОМАНДА / E: n параметр между 160[10] и 32767[10] байтов. Местная среда сегменты, унаследованные от дочерних процессов, обычно уменьшаются до размера содержимого, которое они содержат. Некоторые процессоры командной строки (например, 4ДОС ) позволяют определить минимальный объем свободного пространства среды, которое будет доступно при запуске вторичных оболочек.[10] Хотя содержимое переменных среды остается неизменным при хранении, их имена (без символа "%") всегда переводятся в верхний регистр, за исключением переменные до среды определяется через CONFIG.SYS директива НАБОР под DR DOS 6.0 и выше[11][12] (и только с ВЫКЛЮЧАТЕЛИ = / L (для "разрешить имена в нижнем регистре") под DR-DOS 7.02 и выше).[10][13] В принципе, MS-DOS 7.0 и выше также поддерживает имена переменных в нижнем регистре (% windir%), но не дает пользователю возможности определить их. Имена переменных среды, содержащие строчные буквы, хранятся в среде так же, как и обычные переменные среды, но остаются невидимыми для большинства программ DOS, поскольку они написаны так, что рассчитаны только на переменные верхнего регистра.[10][11][12] Некоторые командные процессоры ограничивают максимальную длину имени переменной 80 символами.[10] Хотя в основном ограничено только размером сегмент окружающей среды, некоторые программы DOS и 16-битные Windows[10][nb 1] не ожидайте, что содержимое переменных среды превысит 128 символов. DR-DOS COMMAND.COM поддерживает переменные среды до 255, 4ДОС даже до 512 знаков.[10] С COMMAND.COM можно настроить (через /L:128..1024) для внутренней поддержки командных строк до 1024 символов в MS-DOS 7.0 и выше, переменные среды также должны содержать не менее 1024 символов. В некоторых версиях DR-DOS среда, передаваемая драйверам, которые часто не нуждаются в своей среде после установки, может быть уменьшена или перемещена через SETENV или же УСТАНОВИТЬ [ВЫСОКИЙ]/НАГРУЗКА ВЫСОКАЯ опции / Z (нулевая среда), / D [:loaddrive ] (заменить диск, например B: TSR.COM) и / E (переместите среду над программой), чтобы свести к минимуму фактически получаемый драйвером объем резидентной памяти.[14][13][11][15][16][17]

В пакетном режиме несуществующие переменные среды заменяются строкой нулевой длины.

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

% ПРИЛОЖЕНИЕ% (поддерживается с DOS 3.3)
Эта переменная содержит разделенный точками с запятой список каталогов, в которых следует искать файлы. Обычно его можно изменить через ДОБАВИТЬ / E команда, которая также обеспечивает преобразование имен каталогов в верхний регистр. Некоторое программное обеспечение DOS фактически ожидает, что имена будут храниться в верхнем регистре, а длина списка не будет превышать 121[10] символов, поэтому переменную лучше не изменять через НАБОР команда. Длинные имена файлов содержащие пробелы или другие специальные символы не должны заключаться в кавычки (").
% КОНФИГУРАЦИЯ% (поддерживается с MS-DOS 6.0 и ПК DOS 6.1, также поддерживается ROM-DOS[18])
Эта переменная содержит символическое имя выбранной в данный момент конфигурации загрузки. Он установлен DOS BIOS (IO.SYS, IBMBIO.COMи т. д.) на имя, определяемое соответствующими CONFIG.SYS директива ПУНКТ МЕНЮ перед запуском основного командного процессора. Его основная цель - разрешить другие особые случаи в AUTOEXEC.BAT и аналогичные пакетные задания в зависимости от выбранной опции во время загрузки. Это можно эмулировать под DR-DOS, используя CONFIG.SYS директива НАБОР подобно УСТАНОВИТЬ КОНФИГУРАЦИЮ = 1.
% CMDLINE% (введено с 4ДОС, также поддерживается с MS-DOS 7.0 )
Эта переменная содержит полностью развернутый текст выполняемой в данный момент командной строки. Приложения могут читать его для обнаружения использования и получения длинных командных строк, поскольку традиционный метод получения аргументов командной строки через PSP (или связанные API функции) ограничен 126 символами и больше не доступен, когда FCB развернуть или по умолчанию DTA используется. Хотя 4DOS поддерживает более длинные командные строки, COMMAND.COM по-прежнему поддерживает максимум 126 символов в приглашении по умолчанию (если не переопределено с помощью /U:128..255 чтобы указать размер буфера командной строки), но тем не менее внутренние командные строки могут стать длиннее, например, переменное расширение (в зависимости от /L:128..1024 чтобы указать размер внутреннего буфера). В дополнение к байту длины командной строки в PSP, командная строка PSP обычно ограничена ASCII-13, а командные строки длиной более 126 символов обычно усекаются путем вставки ASCII-13 в позицию 127,[12] но нельзя полагаться на это во всех сценариях.[12][nb 2] Переменная будет подавлена ​​для внешних команд, вызываемых с предыдущим @-символ как в @XCOPY ... для обратной совместимости и чтобы минимизировать размер окружения при загрузке без перемещения TSR. Некоторые бета-версии Microsoft Чикаго использовал % CMDLINE% для хранения только оставшейся части командной строки, превышающей 126 символов, вместо полной командной строки.[11][12]
% COMSPEC% (поддерживается с DOS 2.0)
Эта переменная содержит полный 8.3 путь к командный процессор обычно C: COMMAND.COM или же C: DOS COMMAND.COM. Он не должен содержать длинные имена файлов, но в DR-DOS он может содержать пароли файлов и каталогов. Он настраивается основным командным процессором так, чтобы он указывал на себя (обычно отражая настройки CONFIG.SYS директива РАКУШКА), так что резидентная часть командного процессора может перезагружать свою переходную часть с диска после выполнения более крупных программ. Значение можно изменить во время выполнения, чтобы отразить изменения в конфигурации, которые потребуют от командного процессора перезагрузки из других мест. Переменная также используется при запуске второстепенных снарядов.
% COPYCMD% (поддерживается с MS-DOS 6.2 и ПК DOS 6.3, также поддерживается ROM-DOS[18])
Позволяет пользователю указать / Г переключатель (чтобы принять "Да" в запросах) по умолчанию для КОПИРОВАТЬ, XCOPY, и ДВИГАТЬСЯ команды. По умолчанию / Г может быть отменено путем подачи / -Y включите командную строку. В / Г switch указывает команде заменить существующие файлы без запроса подтверждения.
% DIRCMD% (поддерживается с MS-DOS 5.0 и ПК DOS 5.0, также поддерживается ROM-DOS[18])
Позволяет пользователю указать индивидуальные параметры по умолчанию для DIR команда, включая спецификации файла. Предустановленные переключатели по умолчанию можно переопределить, указав отрицательный переключатель в командной строке. Например, если % DIRCMD% содержит / Вт переключатель, то его можно переопределить, используя DIR / -W в командной строке. Это похоже на переменную среды % $ DIR% под DOS Plus[19] и средство для определения переключателей по умолчанию для DIR через его / C или же переключается под DR-DOS COMMAND.COM.[11] % DIRCMD% также поддерживается внешним SDIR.COM/DIR.COM Укладчик команды под Novell DOS 7 и выше.[11]
% LANG% (поддерживается с MS-DOS 7.0 )
Эта переменная поддерживается некоторыми инструментами для переключения языкового стандарта для сообщений при многоязычных проблемах.
% LANGSPEC% (поддерживается с MS-DOS 7.0 )
Эта переменная поддерживается некоторыми инструментами для переключения языкового стандарта для сообщений при многоязычных проблемах.
% NO_SEP% (поддерживается с ПК DOS 6.3 и DR-DOS 7.07 )
Эта переменная управляет отображением разделители тысяч в сообщениях различных команд. Выдаются по умолчанию, их можно подавить, указав УСТАНОВИТЬ NO_SEP = ON или же УСТАНОВИТЬ NO_SEP = 1 под ПК DOS. DR-DOS дополнительно позволяет переопределить системный разделитель тысяч, отображаемый, как в примере ниже. УСТАНОВИТЬ NO_SEP =..[10]
%ДОРОЖКА% (поддерживается с DOS 2.0)
Эта переменная содержит разделенный точкой с запятой список каталогов, в которых интерпретатор команд будет искать исполняемые файлы. Эквивалент Unix $ PATH переменная (но некоторые приложения DOS и Windows также используют список для поиска файлов данных, похожих на $ LD_LIBRARY_PATH в Unix-подобных системах). Обычно его можно изменить через ДОРОЖКА (или же ПУТЬ / E под MS-DOS 6.0 ), которая также обеспечивает преобразование имен каталогов в верхний регистр. Некоторое программное обеспечение DOS фактически ожидает, что имена будут храниться в верхнем регистре, а длина списка не будет превышать 123[10] символы,[nb 1] поэтому лучше не изменять переменную через НАБОР команда.[10] Длинные имена файлов содержащие пробелы или другие специальные символы не должны заключаться в кавычки ("). По умолчанию сначала ищется текущий каталог, но некоторые процессоры командной строки, такие как 4ДОС позволять "."(для" текущего каталога "), который также будет включен в список, чтобы переопределить этот порядок поиска; некоторые программы DOS несовместимы с этим расширением.[10]
%ПОДСКАЗКА% (поддерживается с DOS 2.0)
Эта переменная содержит $-токенизированная строка, определяющая отображение Подсказка. Обычно его можно изменить через ПОДСКАЗКА команда.
% TEMP%% TMP%)
Эти переменные содержат путь к каталогу, в котором временные файлы следует хранить. Инструменты операционной системы обычно используют только % TEMP%, тогда как сторонние программы также используют % TMP%. Обычно % TEMP% имеет приоритет над % TMP%.

В DR-DOS семья поддерживает ряд дополнительных стандартные переменные среды включая:

%БЕТА%
Эта переменная содержит необязательное сообщение, отображаемое некоторыми версиями (включая DR DOS 3.41 ) из COMMAND.COM при запуске вторичных оболочек.[20]
% DRDOSCFG%/% NWDOSCFG%/% OPENDOSCFG%
Эта переменная содержит каталог[21] (без завершающего "\") где искать .INI и .CFG файлы конфигурации (то есть файлы, специфичные для приложения DR-DOS, например TASKMGR.INI, TASKMAX.INI, VIEWMAX.INI, FASTBACK.CFG и т.д., файлы, специфичные для класса, например COLORS.INIили глобальные файлы, например DRDOS.INI, NWDOS.INI, OPENDOS.INI, или же DOS.INI), как используется УСТАНОВИТЬ и НАСТРАИВАТЬ команды и различные программы DR-DOS, такие как ДИСКОПТ, ДОСБУК, РЕДАКТИРОВАТЬ, FBX, FILELINK, ЗАМОК, SECURITY.OVL/NWLOGIN.EXE, SERNO, ТАСКМАКС, ТАСКМГР, VIEWMAX, или же ОТМЕНИТЬ.[11] Он не должен содержать длинные имена файлов.
% DRCOMSPEC%
Эта переменная может содержать альтернативный путь к командному процессору, имеющий приоритет над путем, определенным в % COMSPEC% переменная, необязательно включая пароли к файлам и каталогам. Кроме того, он может содержать специальное значение "НА" или же "1"в целях принудительного использования % COMSPEC% переменная даже в сценариях, где % COMSPEC% переменная может указывать на неправильный процессор командной строки, например, при запуске некоторых версий DR-DOS SYS команда под чужой операционной системой.[22]
% DRSYS%
Установка этой переменной на "НА" или же "1"заставит некоторые версии DR-DOS SYS команда для работы в чужих операционных системах вместо вывода предупреждения.[22]
% FBP_USER%
Задает имя пользователя, используемое FastBack команда FBX и {Пользователь}.FB файлы конфигурации в Novell DOS 7.[11]
% HOMEDIR%
Эта переменная может содержать домашний каталог DR-DOS (включая DR DOS 5.0 и 6.0 ).[11][20]
%ИНФОРМАЦИЯ%
В некоторых версиях DR-DOS COMMAND.COM эта переменная определяет строку, отображаемую $ I знак ПОДСКАЗКА команда.[20] Его можно использовать, например, для информирования пользователя о выходе из вторичных оболочек.
%ЛОГИН%
В некоторых версиях DR-DOS COMMAND.COM эта переменная определяет имя пользователя, отображаемое $ U знак ПОДСКАЗКА команда, настроенная f.e. сценарии входа для Novell NetWare.[10][11][20] См. Также псевдо-переменную с аналогичным названием %ЛОГИН%.
% MDOS_EXEC%
Эта переменная может принимать значения "НА" или же "ВЫКЛЮЧЕННЫЙ" под Многопользовательская DOS. Если этот параметр включен, операционная система разрешает приложениям обращаться к вторичным оболочкам с Программная область DOS (DPA) освобожден, чтобы иметь максимальный объем памяти DOS, доступный для дополнительных приложений, вместо того, чтобы запускать их в том же домене, что и в DOS.[23][24]
% NOCHAR%
Эта переменная может использоваться для определения символа, отображаемого некоторыми командами в сообщениях для "Нет" в [Д, Н] запросы, тем самым отменяя текущее системное значение по умолчанию (обычно "N"в английских версиях DR-DOS). Если он содержит строку, будет взят только первый символ в верхнем регистре. Некоторые команды также поддерживают параметр командной строки / Г автоматически принимать ответ «Да» на запросы, тем самым подавляя такие запросы. Если, однако, параметр / Y: yn используется для указания символов «Да» / «Нет» (тем самым отменяя любые % NOCHAR% настройка) запросы не подавляются. См. Также связанные CONFIG.SYS директива НОЧАР и переменная окружения % YESCHAR%.[22]
%БЕЗ ЗВУКА%
Установка этой переменной на "НА" или же "1"отключит звуковые сигналы по умолчанию, издаваемые некоторыми командами DR-DOS в определенных ситуациях, например, чтобы проинформировать пользователя о завершении некоторой операции, о том, что требуется взаимодействие с пользователем или когда была нажата неправильная клавиша. Параметры командной строки для включения определенных звуковых сигналов переопределит этот параметр.
%ОПЕРАЦИОННЫЕ СИСТЕМЫ%
Эта переменная содержит имя операционной системы, чтобы различать различные операционные системы, относящиеся к DOS. Цифровые исследования -оригинал в пакетных заданиях и приложениях.[21] Известные значения включают "ДОСПЛЮС" (DOS Plus 1.2 в эмуляции DOS) "CPCDOS 4.1"(DOS Plus 1.2 дюйма CP / M эмуляция), "DRDOS" (DR DOS 3.31 -6.0, DR DOS Пантера, DR DOS StarTrek, DR-DOS 7.02[21]-7.05 ), "EZDOS" (EZ-DOS 3.41 ), "ПАЛЬМДОС" и "NetWare PalmDOS" (PalmDOS 1.0 ), "NWDOS" (Novell DOS 7 ), "NWDOS7"(Novell DOS 7 Beta)",OPENDOS" (Caldera OpenDOS 7.01, Кальдера DR-OpenDOS 7.02 ), "CDOS" (Параллельная DOS, Параллельная DOS XM ), "CPCDOS" (Параллельный ПК DOS ), "CDOS386" (Параллельная DOS 386 ), "DRMDOS" (DR Многопользовательская DOS ), "MDOS" (CCI Многопользовательская DOS ),[23] "IMSMDOS" (IMS Многопользовательская DOS ), "РЕАЛЬНЫЙ32" (РЕАЛЬНЫЙ / 32 ).[11][25] MS-DOS INTERSVR ищет значение "DRDOS" также.[25] См. Также переменную среды с таким же именем %ОПЕРАЦИОННЫЕ СИСТЕМЫ% позже представленный в Семейство Windows NT.
% PEXEC%
В некоторых версиях DR-DOS эта переменная определяет команду, выполняемую $ X знак ПОДСКАЗКА команда перед COMMAND.COM отображает запрос после выхода из выполнения внешней программы.[11][21]
% SWITCHAR%
Эта переменная определяет SwitChar будет использоваться для синтаксического анализа аргументов некоторыми командами DR-DOS. Если определено, оно отменяет текущую настройку SwitChar системы. Единственные допустимые символы: "/"(Стиль DOS),"-"(Стиль Unix) и"["(Стиль CP / M). См. Также соответствующие CONFIG.SYS директива ПЕРЕКЛЮЧАТЕЛЬ (для установки настройки SwitChar системы) и %/% системная информационная переменная в некоторых выпусках DR-DOS COMMAND.COM (для получения текущих настроек переносимых пакетных заданий).
% TASKMGRWINDIR%
Эта переменная указывает каталог, в котором Windows SYSTEM.INI для использования DR-DOS ТАСКМГР многозадачность, отменяет процедуру по умолчанию для поиска файла.[11]
% VER%
Эта переменная содержит версию операционной системы, чтобы различать разные версии DR-DOS в пакетных заданиях и при отображении VER команда.[21] Он также используется для $ V знак ПОДСКАЗКА команда и влияет на значение, возвращаемое системная информационная переменная % OS_VERSION%. Известные значения включают "1.0" (PalmDOS 1.0 ), "1.2" (DOS Plus 1.2 в эмуляции DOS) "2.0" (Параллельный DOS 386 2.0 ), "3.0" (Параллельная DOS 386 3.0 ), "3.31" (DR DOS 3.31 ), "3.32" (DR DOS 3.32 ), "3.33" (DR DOS 3.33 ), "3.34" (DR DOS 3.34 ), "3.35" (DR DOS 3.35 ), "3.40" (DR DOS 3.40 ), "3.41" (DR DOS 3.41, EZ-DOS 3.41 ), "3,41 т" (DR DOS 3.41T ), "4.1" (Параллельный ПК DOS 4.1 ), "5.0" (DR DOS 5.0, DR Многопользовательский DOS 5.0 ), "5.1" (Novell DR Многопользовательская DOS 5.1 ), "6.0" (DR Параллельный DOS XM 6.0, DR DOS 6.0 ), "6.2" (DR Параллельный DOS XM 6.2 ), "7" (Novell DOS 7, Caldera OpenDOS 7.01, DR-DOS 7.02 -7.05 ), "7.00" (CCI Многопользовательская DOS 7.00 ), "7.07" (DR-DOS 7.07 ), "7.1" (Многопользовательский IMS DOS 7.1 ), "7.21" (CCI Многопользовательская DOS 7.21 ),[23] "7.22" (CCI Многопользовательская DOS 7.22 ) так далее.[11][25][23]
% YESCHAR%
Эта переменная может использоваться для определения символа, отображаемого некоторыми командами в сообщениях "Да" в [Д, Н] запросы, тем самым отменяя текущее системное значение по умолчанию (обычно "Y"в английских версиях DR-DOS). Если он содержит строку, будет взят только первый символ в верхнем регистре. Некоторые команды также поддерживают параметр командной строки / Г автоматически принимать ответ «Да» на запросы, тем самым подавляя такие запросы. Если, однако, параметр / Y: y используется для указания символа "Да" (тем самым отменяя любые % YESCHAR% настройка) запросы не подавляются. См. Также связанные CONFIG.SYS директива YESCHAR и переменная окружения % NOCHAR%.[22]
% $ CLS%
Эта переменная определяет последовательность управления, отправляемую драйверу консоли для очистки экрана, когда CLS выдается команда, тем самым отменяя внутреннее значение по умолчанию ("← [2J"под DR-DOS",← E" под DOS Plus 1.2 на машинах Amstrad[19] а также под Параллельная DOS, Многопользовательская DOS, и РЕАЛЬНЫЙ / 32 за VT52 терминалы, или "←+"под многопользовательской DOS для ASCII терминалы).[23] Если переменная не определена и нет ANSI.SYS драйвер консоли обнаружен, DR-DOS COMMAND.COM очистит экран напрямую через ИНТ 10ч / AH = 00ч BIOS функция, такая как MS-DOS / PC DOS COMMAND.COM делает. Специальный nnn-отчет для восьмеричные числа поддерживается, чтобы разрешить определение специальных символов, таких как ESC (-27-й символ таблицы ASCII = "←" = 1Bh = 33o), как например. в НАБОР $ CLS = 033 [2J. Чтобы отправить обратную косую черту ("\") сам, его можно удвоить"\\".[11][20][23]
% $ DIR%
При поддержке DOS Plus принятие значений «L» (длинный) или «W» (широкий) для изменения макета по умолчанию для списков каталогов с DIR. Может быть переопределено с помощью параметров командной строки / Л или же / Вт.[20][19] См. Также аналогичную переменную среды % DIRCMD% и DIR опции / C и из DR-DOS COMMAND.COM.[11]
% $ PAGE%
При поддержке DOS Plus принятие ценностей "НА" или же "ВЫКЛЮЧЕННЫЙ"для управления разбивкой на страницы. Установите значение"НА"действует так же, как добавление к поддерживающим его командам (например, DIR или же ТИП ).[20][19]
% $ LENGTH%
Использован DOS Plus для определения длины экрана консоли в строках. Это используется для портативного управления, когда вывод на экран должен быть временно остановлен до тех пор, пока не будет нажата клавиша в сочетании с опция поддерживается различными командами или с автоматической разбивкой на страницы.[20][19] См. Также связанные переменные среды % $ WIDTH% и % DIRSIZE% а также аналогичная псевдопеременная % _ROWS%.
% $ WIDTH%
Использован DOS Plus для определения ширины экрана консоли в столбцах. Это используется для портативного управления форматированием вывода на экран таких команд, как DIR / Вт или же ТИП имя файла.[20][19] См. Также связанные переменные среды % $ LENGTH% и % DIRSIZE% а также аналогичная псевдопеременная % _COLUMNS%.
% $ SLICE%
Использован DOS Plus принятие числового значения для управления временным интервалом переднего плана / фона многозадачных программ.[20][19] См. Также команду DOS Plus ЛОМТИК.
% $ ON%
Эта переменная может содержать необязательную управляющую последовательность для включения выделения, реверсирования или раскрашивания текста. Он используется для выделения или иного управления отображением имен файлов в таких командах, как ТИП подстановочный знак, Например SET $ ON = 033 [1 мин. с ANSI.SYS загружен или УСТАНОВИТЬ $ ON = 016 для IBM или ESC / P принтер. Для особых nnn поддерживается восьмеричная запись, см. % $ CLS%.[11][19] Хотя переменная по умолчанию не определена в DOS Plus и DR-DOS, Многопользовательская DOS по умолчанию для ASCII терминал равно УСТАНОВИТЬ $ ON = 033p.[20][23] См. Также связанную переменную среды % $ OFF%.
% $ OFF%
Эта переменная может содержать необязательную управляющую последовательность для выключения выделения, реверсии или раскрашивания текста. Он используется для возврата к нормальному выводу после отображения имен файлов в таких командах, как ТИП подстановочный знак, Например SET $ OFF = 033 [0 мин. с ANSI.SYS загружен или НАБОР $ OFF = 024 для IBM или ESC / P принтер. Для особых nnn поддерживается восьмеричная запись, см. % $ CLS%.[11][19] Хотя переменная по умолчанию не определена в DOS Plus и DR-DOS, Многопользовательская DOS по умолчанию для ASCII терминал равно НАБОР $ OFF = 033q.[20][23] См. Также связанную переменную среды % $ ON%.
% $ HEADER%
Эта переменная может содержать необязательную управляющую последовательность, выданную перед выводом содержимого файла в таких командах, как ТИП под DR-DOS 7.02 и выше. Его можно использовать для выделения, разбивки на страницы или форматирования, например. при отправке вывода на принтер, т.е. УСТАНОВИТЬ $ HEADER = 017 для IBM или ESC / P принтер. Для особых nnn поддерживается восьмеричная запись, см. % $ CLS%.[20] См. Также связанную переменную среды % $ FOOTER%.
% $ FOOTER%
Эта переменная может содержать необязательную управляющую последовательность, выпущенную после вывода содержимого файла в таких командах, как ТИП под DR-DOS 7.02 и выше. Он используется для возврата к нормальному формату вывода, т.е. УСТАНОВИТЬ $ FOOTER = 022 014 в примере с принтером выше. Для особых nnn поддерживается восьмеричная запись, см. % $ CLS%.[20] См. Также связанную переменную среды % $ HEADER%.

Datalight ROM-DOS поддерживает ряд дополнительных стандартные переменные среды а также в том числе:

% DIRSIZE%
Эта переменная используется для определения нестандартных размеров экрана. строки [, столбцы] за DIR опции и / Вт (похожий на % $ LENGTH% и % $ WIDTH% под DOS Plus).[18]
%НОВЫЙ ФАЙЛ%
Эта переменная автоматически устанавливается на первый параметр, указанный в директиве CONFIG.SYS. НОВЫЙ ФАЙЛ.[18]

% TZ%, % COMM%, %РОЗЕТКИ%, % HTTP_DIR%, % HOSTNAME% и % FTPDIR% также используются ROM-DOS.[18]

OS / 2

% BEGINLIBPATH%
Содержит список каталогов, разделенных точкой с запятой, в которых выполняется поиск. DLL перед каталоги, предоставленные % LIBPATH% переменная (которая устанавливается при запуске системы с помощью специального CONFIG.SYS директива LIBPATH). Здесь можно указать относительные каталоги, включая "."для текущего рабочего каталога. См. также соответствующую переменную среды % ENDLIBPATH%.
% ENDLIBPATH%
список каталогов для поиска DLL подобно % BEGINLIBPATH%, но искал после список каталогов в % LIBPATH%.

Windows

Переменные системного пути[нужна цитата ] относятся к расположению критических ресурсов операционной системы и, как таковые, обычно не зависят от пользователя.

%ДАННЫЕ ПРИЛОЖЕНИЯ%
Содержит полный путь к Данные приложений каталог вошедшего в систему пользователя. Не работает в Windows NT 4.0 SP6 UK.
% LOCALAPPDATA%
Эта переменная - временные файлы Приложения. Его использование включает хранение темы рабочего стола, Отчет об ошибках Windows, кеширование и профили веб-браузеров.
%ComSpec %/%COMSPEC %
В % ComSpec% переменная содержит полный путь к командному процессору; в семействе операционных систем Windows NT это cmd.exe, а на Windows 9x, % COMSPEC% является COMMAND.COM.
%ОПЕРАЦИОННЫЕ СИСТЕМЫ%
В %ОПЕРАЦИОННЫЕ СИСТЕМЫ% переменная содержит символическое имя семейства операционных систем, чтобы различать разные наборы функций в пакетные работы. Он похож на переменную среды с таким же именем. %ОПЕРАЦИОННЫЕ СИСТЕМЫ% найдены во всех связанных с DOS операционных системах Цифровые исследования -origin как Concurrent DOS, Многопользовательская DOS, REAL / 32, DOS Plus, DR DOS, Novell DOS и OpenDOS. %ОПЕРАЦИОННЫЕ СИСТЕМЫ% всегда держит строку "Windows_NT" на Семейство Windows NT.[26]
%ДОРОЖКА%
Эта переменная содержит разделенный точками с запятой (не ставьте пробелы между ними) список каталогов, в которых интерпретатор команд будет искать исполняемый файл, соответствующий заданной команде. Переменные среды, представляющие пути, могут быть вложены в %ДОРОЖКА% переменная, но только на одном уровне косвенности. Если эта переменная среды субпутья сама содержит переменную среды, представляющую путь, %ДОРОЖКА% не будет правильно расширяться при подстановке переменных. Эквивалентно Unix $ PATH Переменная.
%Файлы программ%, % ProgramFiles (x86)%, % ProgramW6432%
В %Файлы программ% переменная указывает на Файлы программ каталог, в котором хранятся все установленные программы Windows и другие. По умолчанию в англоязычных системах установлено "C: Program Files". В 64-битных выпусках Windows (XP, 2003, Vista) также есть % ProgramFiles (x86)%, который по умолчанию "C: Program Files (x86)", и % ProgramW6432%, который по умолчанию "C: Program Files". %Файлы программ% Сам по себе зависит от того, является ли процесс, запрашивающий переменную среды, 32-битным или 64-битным (это вызвано тем, что Windows-on-Windows 64-разрядная перенаправление).
% CommonProgramFiles%
Эта переменная указывает на Общие файлы каталог. По умолчанию "C: Program Files Общие файлы"в английской версии Windows.
% SystemDrive%
В % SystemDrive% Переменная - это специальная общесистемная переменная среды, встречающаяся в Windows NT и ее производных. Его значение - это диск, на котором был размещен системный каталог. Значение % SystemDrive% в большинстве случаев "C:".
% SystemRoot%
В % SystemRoot% Переменная - это специальная общесистемная переменная среды, встречающаяся в операционных системах семейства Windows NT. Его значение - это расположение системного каталога, включая диск и путь. Привод такой же, как % SystemDrive% а путь по умолчанию при чистой установке зависит от версии операционной системы. По умолчанию:
% windir%
Эта переменная указывает на Windows каталог. (В операционных системах семейства Windows NT он идентичен % SystemRoot% Переменная). Windows 95, Windows 98 и Windows ME по умолчанию установлены в "C: Windows". Для других версий Windows см. % SystemRoot% запись выше.

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

% ALLUSERSPROFILE% (%ДАННЫЕ ПРОГРАММЫ% начиная с Windows Vista)
Эта переменная расширяется до полного пути к Все пользователи каталог профиля. Этот профиль содержит ресурсы и настройки, которые используются всеми системными учетными записями. Ярлык ссылки скопированы в Все пользователи\' Стартовое меню или же Рабочий стол каталоги появятся у каждого пользователя Стартовое меню или же Рабочий стол, соответственно.
% USERDOMAIN%
Имя Рабочая группа или же Домен Windows которому принадлежит текущий пользователь. Связанная переменная, % LOGONSERVER%, держит имя хоста сервера, который аутентифицировал учетные данные текущего пользователя (имя и пароль). Для домашних ПК и ПК в рабочей группе сервером аутентификации обычно является сам ПК. Для ПК в домене Windows сервер аутентификации является контроллер домена (основной контроллер домена, или PDC, в доменах под управлением Windows NT 4).
%ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ%
Специальная общесистемная переменная среды, встречающаяся в Windows NT и ее производных. Его значением является расположение каталога профиля текущего пользователя, в котором находится куст реестра HKCU этого пользователя (NTUSER). Пользователи также могут использовать %ИМЯ ПОЛЬЗОВАТЕЛЯ% переменная для определения идентификатора входа активного пользователя.

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

Значения по умолчанию

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

(Некоторые из этих переменных также определяются при запуске COMMAND.COM под Windows, но отличаются некоторыми важными деталями: Под COMMAND.COM, имена переменных среды всегда в верхнем регистре. Некоторые, но не все переменные содержат короткие 8.3 скорее, чем длинные имена файлов. Хотя некоторые переменные присутствуют в CMD окружения отсутствуют, есть также некоторые переменные, специфичные для КОМАНДА среда.)

ПеременнаяЗависит от локалиWindows XP (CMD)Windows Vista и выше (CMD)
% ALLUSERSPROFILE%[27]даC: Documents and Settings All UsersC: ProgramData[27]
%ДАННЫЕ ПРИЛОЖЕНИЯ%[27]даC: Documents and Settings {имя пользователя} Application DataC: Users {имя пользователя} AppData Roaming[27]
% CommonProgramFiles%[27]даC: Program Files Общие файлыC: Program Files Общие файлы[27]
% CommonProgramFiles (x86)%[27]даC: Program Files (x86) Общие файлы (только в 64-битной версии)C: Program Files (x86) Общие файлы (только в 64-битной версии)[27]
% CommonProgramW6432%[27]да% CommonProgramW6432% (не поддерживается, не заменяется никаким значением)C: Program Files Общие файлы (только в 64-битной версии)[27]
%ИМЯ КОМПЬЮТЕРА%Нет{Имя компьютера}{Имя компьютера}
% ComSpec%НетC: Windows System32 cmd.exeC: Windows System32 cmd.exe
% HOMEDRIVE%[27]НетC:C:[27]
% HOMEPATH%[27]да Documents and Settings {имя пользователя} Users {имя пользователя}[27]
% LOCALAPPDATA%[27]да% LOCALAPPDATA% (не поддерживается, не заменяется никаким значением)C: Users {имя пользователя} AppData Local[27]
% LOGONSERVER%Нет {domain_logon_server} {domain_logon_server}
%ДОРОЖКА%даC: Windows system32; C: Windows; C: Windows System32 Wbem; {плюс пути к программам}C: Windows system32; C: Windows; C: Windows System32 Wbem; {плюс пути к программам}
% PATHEXT%Нет.COM; .EXE; .BAT; .CMD; .VBS; .VBE; .JS; .WSF; .WSH.com; .exe; .bat; .cmd; .vbs; .vbe; .js; .jse; .wsf; .wsh; .msc
%Данные программы%[27]да%Данные программы% (не поддерживается, не заменяется никаким значением)% SystemDrive%Данные программы[27]
%Файлы программ%[27]да% SystemDrive%Файлы программ% SystemDrive%Файлы программ[27]
% ProgramFiles (x86)%[27]да% SystemDrive% Program файлы (x86) (только в 64-битной версии)% SystemDrive% Program файлы (x86) (только в 64-битной версии)[27]
% ProgramW6432%[27]да% ProgramW6432% (не поддерживается, не заменяется никаким значением)% SystemDrive%Файлы программ (только в 64-битной версии)[27]
%ПОДСКАЗКА%НетКод для текущего формата командной строки, обычно $ P $ GКод для текущего формата командной строки, обычно $ P $ G
% PSModulePath%% PSModulePath% (не поддерживается, не заменяется никаким значением)% SystemRoot% system32 WindowsPowerShell v1.0 Modules
% PUBLIC%[27]да% PUBLIC% (не поддерживается, не заменяется никаким значением)% SystemDrive% Users Public[27]
% SystemDrive%[27]НетC:C:[27]
% SystemRoot%[27]НетКаталог Windows, обычно C: Windows, ранее C: WINNT% SystemDrive% Windows[27]
% TEMP%[27] и % TMP%[27]да% SystemDrive% Documents and Settings {имя пользователя} Local Settings Temp% SystemRoot% TEMP (для системных переменных среды % TMP% и % TEMP%), %ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ% AppData Local Temp[27] (для переменных среды пользователя % TMP% и % TEMP%)
% USERDOMAIN%Нет{userdomain}{userdomain}
%ИМЯ ПОЛЬЗОВАТЕЛЯ%Нет{имя пользователя}{имя пользователя}
%ПРОФИЛЬ ПОЛЬЗОВАТЕЛЯ%[27]да% SystemDrive% Documents and Settings {имя пользователя}% SystemDrive% Users {имя пользователя}[27]
% windir%[27]Нет% SystemDrive% WINDOWS% SystemDrive% Windows[27]

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

Переменные псевдо-среды

ДОС

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

Так называемой параметры замены или же заменяемые параметры (Терминология Microsoft / IBM) aka переменные замены (Цифровые исследования / Novell / терминология Caldera)[21] или же параметры пакетного файла (Терминология JP Software)[10] %1..%9 и %0 может использоваться для получения параметров вызова пакетного задания, см. СДВИГ. В пакетных заданиях их можно получить так же, как переменные среды, но на самом деле они не сохраняются в среде.

Некоторые процессоры командной строки (например, DR-DOS COMMAND.COM,[21] Многопользовательская DOS MDOS.COM/TMP.EXE (Процесс терминального сообщения), Программное обеспечение JP 4ДОС, 4OS2, 4NT, Взять командование и Windows cmd.exe ) поддерживают тип переменных псевдосреды с именем системные информационные переменные (Терминология Novell / Caldera)[21] или же внутренние переменные (Терминология JP Software),[10] который можно использовать для получения различной, возможно, динамической, но доступной только для чтения информации о работающей системе в пакетных заданиях. Возвращенные значения представляют состояние системы на момент запроса этих переменных; то есть чтение их несколько раз подряд может вернуть разные значения даже в пределах одной команды; их запросы не имеют прямого воздействия на систему. Поскольку они не хранятся в среде, они не перечислены НАБОР и не существуют для извлечения внешними программами. Если определена истинная переменная среды с тем же именем, она имеет приоритет перед соответствующей переменной до тех пор, пока переменная среды не будет снова удалена. Они не чувствительны к регистру, хотя почти все такие переменные имеют префикс подчеркивать ("_") 4DOS и т. д. по соглашению (например, %_ВТОРОЙ%),[10] они не под DR-DOS COMMAND.COM (например, % OS_VERSION%).

Кроме того, 4DOS, 4OS2, 4NT и Take Command также поддерживают так называемые переменные функции,[10] включая определяемые пользователем. Они работают так же, как внутренние переменные, но может принимать необязательные параметры (например, % @ EVAL []%) и могут даже изменить статус системы в зависимости от их функции.

Системные информационные переменные поддерживается DR-DOS COMMAND.COM:

%ДО ПОЛУДНЯ ПОСЛЕ ПОЛУДНЯ%
Эта псевдопеременная возвращает статус текущего времени до или после полудня. Возвращаемая строка зависит от версии DR-DOS для конкретной локали, например. "являюсь" или же "вечера"в английской версии. Он напоминает одноименный переменная идентификатора в Novell NetWare сценарии входа в систему.
%ДЕНЬ%
Эта псевдопеременная возвращает дни текущей даты в 2-значном формате с ведущими нулями, например. "01".."31". См. Также аналогичную псевдо-переменную %_ДЕНЬ%. Он похож на одноименный переменная идентификатора в Novell NetWare сценарии входа в систему.
%ДЕНЬ НЕДЕЛИ%
Эта псевдопеременная возвращает название дня недели в трехзначном формате. Возвращаемая строка зависит от версии DR-DOS для конкретной локали, например. "солнце", "Пн", "Вт", "Мы бы", "Чт", "Пт", или же "Сидел"в английской версии. Он напоминает одноименный переменная идентификатора в Novell NetWare сценарии входа в систему.
% ERRORLEVEL%
В COMMAND.COM DR-DOS 7.02 и выше, эта псевдопеременная возвращает последний уровень ошибки, возвращенный внешней программой или ВОЗВРАЩАТЬСЯ команда, например. "0".."255".[28][29] См. Также псевдо-переменную с таким же названием % ERRORLEVEL% под Windows и ЕСЛИ УРОВЕНЬ ОШИБКИ условная команда.
% ERRORLVL%
В DR-DOS 7.02 и выше эта псевдопеременная возвращает последний уровень ошибки в трехзначном формате с ведущими нулями, например. "000".."255".[28][29] Под Многопользовательская DOS, это настоящая переменная среды, которая автоматически обновляется оболочкой до кода возврата завершающихся программ.[23] См. Также связанную псевдо-переменную % ERRORLEVEL% под DR-DOS и ЕСЛИ УРОВЕНЬ ОШИБКИ команда.
% GREETING_TIME%
Эта псевдопеременная возвращает трехуровневое дневное время приветствия. Возвращаемая строка зависит от версии DR-DOS для конкретной локали, например. "утро", "после полудня", или же "вечер"в английской версии. Он напоминает одноименный переменная идентификатора в Novell NetWare сценарии входа в систему.
%ЧАС%
Эта псевдопеременная возвращает часы текущего времени в 12-часовом формате без начальных нулей, например. "1".."12". Он напоминает одноименный переменная идентификатора в Novell NetWare сценарии входа в систему.
% ЧАС24%
Эта псевдопеременная возвращает часы текущего времени в 24-часовом формате в 2-значном формате с ведущими нулями, например. "00".."23". Он напоминает одноименный переменная идентификатора в Novell NetWare сценарии входа в систему. См. Также аналогичную псевдо-переменную %_ЧАС%.
% MINUTE%
Эта псевдопеременная возвращает минуты текущего времени в 2-значном формате с ведущими нулями, например "00".."59". Он напоминает одноименный переменная идентификатора в Novell NetWare сценарии входа в систему. См. Также аналогичную псевдо-переменную % _MINUTE%.
%МЕСЯЦ%
Эта псевдопеременная возвращает месяцы текущей даты в 2-значном формате с ведущими нулями, например. "01".."12". Он напоминает одноименный переменная идентификатора в Novell NetWare сценарии входа в систему. См. Также аналогичную псевдо-переменную %_МЕСЯЦ%.
% MONTH_NAME%
Эта псевдопеременная возвращает название месяца текущей даты. Возвращаемая строка зависит от версии DR-DOS для конкретной локали, например. "Январь", "Февраль", "марш", "апреля", "Май", "июнь", "июль", "август", "сентябрь", "Октябрь", или же "Декабрь"в английской версии. Он напоминает одноименный переменная идентификатора в Novell NetWare сценарии входа в систему.
% NDAY_OF_WEEK%
Эта псевдопеременная возвращает номер дня текущей недели, например. "1".."7" (с "1"на воскресенье). Он напоминает одноименный переменная идентификатора в Novell NetWare сценарии входа в систему.
% OS_VERSION%
Эта псевдопеременная возвращает версию операционной системы в зависимости от текущего значения переменной среды. % VER%. Если % VER% не определено, % OS_VERSION% возвращается "выключенный". Он напоминает одноименный переменная идентификатора в Novell NetWare сценарии входа в систему, которые могут возвращать версии также для версий DOS, отличных от DR-DOS.
%ВТОРОЙ%
Эта псевдопеременная возвращает секунды текущего времени в 2-значном формате с ведущими нулями, например. "00".."59". Он напоминает одноименный переменная идентификатора в Novell NetWare сценарии входа в систему. См. Также аналогичную псевдо-переменную %_ВТОРОЙ%.
% SHORT_YEAR%
Эта псевдопеременная возвращает год текущей даты в 2-значном формате с ведущими нулями, например. "93".."99", "00".."92". Он напоминает одноименный переменная идентификатора в Novell NetWare сценарии входа в систему.
%ГОД% и %_ГОД%
Поддерживается с Novell DOS 7, то %ГОД% псевдо-переменная возвращает год текущей даты в 4-значном формате, например. "1980".."2099". Он напоминает одноименный переменная идентификатора в Novell NetWare сценарии входа в систему. Добавлен DR-DOS 7.02 и выше %_ГОД% для совместимости с 4ДОС, возвращая то же значение.[10]
%/%
В COMMAND.COM DR-DOS 7.02 и выше, эта псевдопеременная возвращает текущую SwitChar установка системы, либо "/"(Стиль DOS) или"-"(Стиль Unix).[30][31] См. Также связанные CONFIG.SYS директива ПЕРЕКЛЮЧАТЕЛЬ и переменная окружения % SWITCHAR%.
% _CODEPAGE%
Эта псевдопеременная возвращает текущий системный кодовая страница ("1".."65533"), например"437", "850", "858". Эта переменная была первоначально введена 4ДОС,[10] но также стал доступен с COMMAND.COM начиная с DR-DOS 7.02. См. Также CHCP команда.
% _COLUMNS%
Эта псевдопеременная возвращает текущее количество столбцов экрана в зависимости от режима отображения, например. "40", "80", "132"и т. д. Эта переменная была первоначально введена 4ДОС,[10] но также стал доступен с COMMAND.COM начиная с DR-DOS 7.02. См. Также аналогичную переменную среды % $ WIDTH% под DOS Plus.
%_СТРАНА%
Эта псевдопеременная возвращает текущий системный код страны ("1".."65534"), например"1"для США"44"для Великобритании"49"для Германии"20049" с ISO 8601, "21049"с ISO 8601 и Евро поддерживать. Эта переменная была первоначально введена 4ДОС,[10] но также стал доступен с COMMAND.COM начиная с DR-DOS 7.02. См. Также CONFIG.SYS директива СТРАНА.
%_ДЕНЬ%
Эта псевдопеременная возвращает дни текущей даты без начальных нулей, например. "1".."31". Эта переменная была первоначально введена 4ДОС,[10] но также стал доступен с COMMAND.COM начиная с DR-DOS 7.02. См. Также аналогичную псевдо-переменную %ДЕНЬ%.
%_ЧАС%
Эта псевдопеременная возвращает часы текущего времени в 24-часовом формате без начальных нулей, например. "0".."23". Эта переменная была первоначально введена 4ДОС,[10] но также стал доступен с COMMAND.COM начиная с DR-DOS 7.02. См. Также аналогичную псевдо-переменную % ЧАС24%.
% _MINUTE%
Эта псевдопеременная возвращает минуты текущего времени без начальных нулей, например "0".."59". Эта переменная была первоначально введена 4ДОС,[10] но также стал доступен с COMMAND.COM начиная с DR-DOS 7.02. См. Также аналогичную псевдо-переменную % MINUTE%.
%_МЕСЯЦ%
Эта псевдопеременная возвращает месяцы текущей даты без начальных нулей, например. "1".."12". Эта переменная была первоначально введена 4ДОС,[10] но также стал доступен с COMMAND.COM начиная с DR-DOS 7.02. См. Также аналогичную псевдо-переменную %МЕСЯЦ%.
% _ROWS%
Эта псевдопеременная возвращает текущее количество строк экрана в зависимости от режима отображения, например. "25", "43", "50"и т. д. Эта переменная была первоначально введена 4ДОС,[10] но также стал доступен с COMMAND.COM начиная с DR-DOS 7.02. См. Аналогичную переменную среды % $ LENGTH% под DOS Plus.
%_ВТОРОЙ%
Эта псевдопеременная возвращает секунды текущего времени без начальных нулей, например. "0".."59". Эта переменная была первоначально введена 4ДОС,[10] но также стал доступен с COMMAND.COM начиная с DR-DOS 7.02. См. Также аналогичную псевдо-переменную %ВТОРОЙ%.

Системные информационные переменные поддерживается DR-DOS COMMAND.COM с загруженной сетью:

%ЛОГИН%
Эта псевдопеременная возвращает имя пользователя. Это всегда работало с NETX, но он также будет работать с Личное NetWare с ODI /VLM если текущий диск является приводом с отображением PNW (в противном случае возвращается пустая строка). См. Также переменную среды с таким же названием %ЛОГИН%.
% P_STATION%
Эта псевдопеременная возвращает номер физической станции в формате "????????????". Значение зависит от MAC-адрес сетевого адаптера, но его можно переопределить. Он похож на одноименный переменная идентификатора в Novell NetWare сценарии входа в систему.
% STATION%
Эта псевдопеременная возвращает логический номер станции, начинающийся с "1"для первого клиента. Номера назначаются файловым сервером и остаются неизменными до тех пор, пока IPX соединение остается установленным. Он похож на одноименный переменная идентификатора в Novell NetWare сценарии входа в систему.
%ПОЛНОЕ ИМЯ%
Эта псевдопеременная возвращает полное имя вошедшего в систему пользователя, если доступно. Он похож на одноименный переменная идентификатора в Novell NetWare сценарии входа в систему. См. Также связанную псевдо-переменную %ЛОГИН%.

Windows

Переменные динамической среды (также названный внутренние переменные или же системные информационные переменные под DOS) - это переменные псевдо-среды, поддерживаемые CMD когда расширения командной строки включены, и они расширяются до различных дискретных значений при каждом запросе, то есть их значения могут изменяться при многократном запросе даже в рамках одной и той же команды. Хотя их можно использовать в пакетных заданиях и по запросу, они не хранятся в среде. Следовательно, они не перечислены НАБОР они также не существуют для чтения внешними программами. Они не чувствительны к регистру.

Косвенно они также поддерживаются под Windows. COMMAND.COM, который был изменен для внутреннего вызова CMD.EXE для выполнения команд.

%CD%
Эта псевдопеременная расширяется до текущего каталога, эквивалентного выходным данным команды CD при вызове без аргументов. Хотя длинное имя файла может быть возвращено в CMD.EXE в зависимости от текущего каталога тот факт, что текущий каталог всегда будет в 8.3 форматировать под COMMAND.COM заставит его вернуть короткое имя файла под COMMAND.COM, даже когда КОМАНДА внутренние звонки CMD.
% CMDCMDLINE%
Эта псевдопеременная расширяется до исходных параметров запуска CMD.EXE, например. "C: Windows system32 cmd.exe". Под Windows" COMMAND.COM, это может вернуть что-то вроде "C: Windows system32 cmd.exe / c ..." благодаря тому факту, что COMMAND.COM звонки CMD.EXE внутренне.
% CMDEXTVERSION%
Эта псевдопеременная расширяется до версии расширений командной строки CMD.EXE, если включено (например, "1" под Windows NT, "2" под Windows 2000 и Windows XP ).
%ДАТА%
Эта псевдопеременная расширяется до текущей даты. Дата отображается в соответствии с текущим пользователем Формат даты предпочтения.
% ERRORLEVEL%
Эта псевдопеременная расширяется до последнего заданного уровня ошибки, значения между "0" и "255"(без ведущих нулей).[28][32][29] Внешние команды и некоторые внутренние команды устанавливают уровни ошибок при выполнении. См. Также псевдо-переменную с таким же названием % ERRORLEVEL% под DR-DOS и ЕСЛИ УРОВЕНЬ ОШИБКИ команда.
%СЛУЧАЙНЫЙ%
Эта псевдопеременная возвращает случайное число между "0" и "32767".
%ВРЕМЯ%
Эта псевдопеременная возвращает текущее время. Время отображается в соответствии с предпочтениями формата времени текущего пользователя. Если %ВРЕМЯ% и %ДАТА% Используются обе переменные, важно читать их обе в этом конкретном порядке в быстрой последовательности, чтобы избежать проблем с переходом в полночь.

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

Примечания

  1. ^ а б Приложения, не справляющиеся должным образом с переменными среды длиной более 128 символов, включают CadStar PCB, Checkit, Компакт-диск выбора компьютера, RenderMan, Сеть VINES, Windows 3.0, и Word для Windows 6.0.
  2. ^ 4ДОС и MS-DOS 7.0 установите длину 127 и вставьте ASCII-13 на этой позиции, но Borland библиотеки устанавливают недопустимое значение 128 и не вставляют ASCII-13. Для более коротких командных строк 4DOS /NDOS и DR-DOS также вставить ASCII-0 после ASCII-13, но не при вызове vis УСТАНОВИТЬ директива; MS-DOS этого не делает.

Рекомендации

  1. ^ Роббинс, Арнольд; Биби, Нельсон Х. Ф. (май 2005 г.). Апанди, Татьяна; Рэндал, Эллисон; Витвер, Адам (ред.). Классический сценарий оболочки (1-е изд.). О'Рейли. ISBN  978-0-596-00595-5.
  2. ^ "unset - неустановленные значения и атрибуты переменных и функций -". Справочник по командам и утилитам, Единая спецификация UNIX - Базовые спецификации Open Group, IEEE Std 1003.1-2008 (Выпуск 7-е изд.). В IEEE и Открытая группа. 2016 [2001]. В архиве из оригинала от 18.12.2017. Получено 2017-12-18.
  3. ^ fgrose (31.07.2015) [2011]. "Неустановленная встроенная команда". Bash Hackers вики. В архиве из оригинала от 18.12.2017. Получено 2017-12-18.
  4. ^ Джейкобс, Майк; Корен, Александр; Сатран, Михаил (14 ноября 2017 г.). «Сохранение и получение настроек и других данных приложения». Microsoft. В архиве из оригинала от 18.12.2017. Получено 2017-12-18.
  5. ^ Раймонд, Эрик (2002-08-02) [Первоначально опубликовано в 2001 году]. «Проект БРАУЗЕР». В архиве из оригинала на 21.09.2019. Получено 2020-10-21.
  6. ^ «LWN - Девелопмент». LWN.net. 2001-02-01. В архиве из оригинала на 2019-02-08. Получено 2020-10-21. Стандартизация переменной среды BROWSER. Эрик Рэймонд продвигает использование новой переменной среды BROWSER в дополнение к существующим переменным PAGER, MAILER и EDITOR. Это усилие проверяется как эксперимент по взлому социальных систем.
  7. ^ Шпачек, Михал (19 января 2020 г.) [Первая версия опубликована в 2013 г.]. "Env :: Браузер-0.06". metacpan.org. В архиве с оригинала на 2020-10-21. Получено 2020-10-21. Env :: Browser - Обработка переменной среды $ BROWSER и запуск веб-браузера
  8. ^ «webbrowser - удобный контроллер веб-браузера». docs.python.org. В архиве из оригинала на 13.10.2020. Получено 2020-10-21.
  9. ^ "DefaultWebBrowser - Debian Wiki". wiki.debian.org. 2020-06-10. В архиве с оригинала на 2020-10-21. Получено 2020-10-21. Переменная среды BROWSER может быть установлена ​​на […] всегда выбирать желаемый браузер.
  10. ^ а б c d е ж грамм час я j k л м п о п q р s т ты v ш Икс у z аа ab Братья Хардин; Роусон, Том; Конн, Рекс К.; Пол, Маттиас Р .; Краситель, Чарльз Э .; Георгиев, Лучезар И. (27.02.2002). Онлайн-справка 4DOS 8.00.
  11. ^ а б c d е ж грамм час я j k л м п о п q р Пол, Матиас Р. (1997-07-30) [1994-05-01]. NWDOS-TIPs - Советы и приемы для Novell DOS 7, MIT Blick auf undokumentierte Подробности, ошибки и обходные пути. MPDOSTIP. Выпуск 157 (на немецком языке) (3-е изд.). В архиве из оригинала от 04.11.2016. Получено 2014-08-06. (NB. NWDOSTIP.TXT - это комплексная работа над Novell DOS 7 и OpenDOS 7.01, включая описание многих недокументированных функций и внутренних компонентов. Предоставленная ссылка указывает на версию файла, преобразованную в HTML, которая является частью MPDOSTIP.ZIP коллекция.) [1]
  12. ^ а б c d е Пол, Матиас Р. (1997-05-01) [1995-03-01]. "Рекомендации по JPSofts 4DOS 5.5b / c, 5.51, 5.52a и NDOS". MPDOSTIP (на немецком). В архиве из оригинала от 04.11.2016. Получено 2015-05-08. (NB. Данная ссылка указывает на HTML-конвертированную версию 4DOS5TIP.TXT файл, который является частью MPDOSTIP.ZIP коллекция.) [2]
  13. ^ а б Пол, Матиас Р. (1997-10-02). "Caldera OpenDOS 7.01 / 7.02 Обновление Alpha 3 IBMBIO.COM README.TXT". Архивировано из оригинал на 2003-10-04. Получено 2009-03-29. [3]
  14. ^ Пол, Маттиас Р. (1997-05-27) [1996]. «SETENV v1.11». Архивировано из оригинал на 2009-02-15. Получено 2019-08-09. […] SETENV […], чтобы скрыть, а затем восстановить […] предварительную среду […] Используя SETENV.COM, вы можете сэкономить несколько килобайт редкой памяти DOS […] в зависимости от количества драйверов, загруженных УСТАНОВИТЬ = /УСТАНОВИТЬ = /HIINSTALL = и текущий размер предварительной среды. […] Эту исходную […] функцию нельзя найти ни в одном из известных менеджеров / оптимизаторов памяти. […]
  15. ^ Пол, Маттиас Р. (2002-04-06). "Re: [fd-dev] ОБЪЯВЛЕНИЕ: CuteMouse 2.0 alpha 1". freedos-dev. В архиве из оригинала 07.02.2020. Получено 2020-02-07. […] В подпрограмме CTMOUSE.ASM prepareTSR я нашел комментарий относительно нулевого окружения. […] DESQview или же DRDOS нулевое окружение? […] Освободить блок среды […] пропустить, если возникнут проблемы […] нулевой блок для MEM утилиты стиля […]
  16. ^ "Руководство пользователя PTS-DOS 2000 Pro" (PDF). В архиве (PDF) из оригинала на 2018-05-12. Получено 2018-05-12.
  17. ^ Пол, Маттиас Р. (2002-10-07). "Re: запустить COM-файл". Группа новостейalt.msdos.programmer. В архиве из оригинала от 03.09.2017. Получено 2017-09-03. [4]
  18. ^ а б c d е ж Datalight, Inc.; GPvNO (апрель 2005 г.) [1999]. "Руководство пользователя Datalight ROM-DOS" (PDF). Datalight, Inc. 3010-0200-0716. В архиве (PDF) из оригинала на 20.03.2019. Получено 2018-09-16.
  19. ^ а б c d е ж грамм час я Котулла, Мартин (Ноябрь 1987 г.). "Von CP / M zu MS-DOS, Teil 11" (PDF). Профессиональные вычисления (ПК) - Schneider International (на немецком). 3 (11): 100–103. В архиве (PDF) из оригинала на 24.04.2019. Получено 2018-05-20.
  20. ^ а б c d е ж грамм час я j k л м п Пол, Матиас Р. (26 марта 2002 г.). "Обновленный CLS опубликован". Список рассылки freedos-dev. В архиве из оригинала на 2018-10-04. Получено 2014-08-06.
  21. ^ а б c d е ж грамм час Caldera DR-DOS 7.02 Руководство пользователя. Caldera, Inc. 1998 [1993, 1997]. Архивировано из оригинал на 2016-11-04. Получено 2013-08-10.
  22. ^ а б c d Пол, Маттиас Р. (14.08.2017) [07.08.2017]. «Продолжающаяся сага о Windows 3.1 в расширенном режиме на OmniBook 300». MoHPC - Музей калькуляторов HP. В архиве из оригинала на 2018-05-01. Получено 2018-05-01. […] Установите DRSYS = ON (необязательно, чтобы сообщить SYS, что вы знаете о том, что вы запускаете его во внешней среде и хотите продолжить работу в любом случае без необходимости индивидуально подтверждать некоторые предупреждения и дополнительные информационные экраны, отображаемые в этом сценарии в противном случае) […]
  23. ^ а б c d е ж грамм час я CCI Multiuser DOS 7.22 GOLD Онлайн-документация. Concurrent Controls, Inc. (CCI). 1997-02-10. HELP.HLP.
  24. ^ CCI Multiuser DOS 7.22 GOLD Руководство по установке. Concurrent Controls, Inc. (CCI). 1997-02-10. PRINTDOC.HLP.
  25. ^ а б c Пол, Матиас Р. (20 февраля 2002 г.). "Как обнаружить FreeCOM / FreeDOS в пакетном режиме?". Список рассылки freedos-dev. В архиве из оригинала 2018-11-06. Получено 2014-08-06.
  26. ^ Бринк, Шон (17.11.2018). «Переменные среды в Windows 10 - Полный список переменных среды в Windows 10». Форумы по Windows Ten. В архиве из оригинала на 2019-03-27. Получено 2019-04-24.
  27. ^ а б c d е ж грамм час я j k л м п о п q р s т ты v ш Икс у z аа ab ac объявление ае аф аг ах ай эй ак Шульц, Хайо (2014-10-02). "Ordner für spezielle Fälle - Die" benannten Ordner "в Windows aus User- und Entwicklersicht" [Папки специального назначения - «именованные папки» Windows с точки зрения пользователя и разработчика]. c't - магазин компьютерной техники (на немецком). Heise Verlag. 2014 (22): 180–184. В архиве из оригинала на 2016-07-09. Получено 2019-04-08.
  28. ^ а б c Пол, Матиас Р. (1997-05-01) [1993-10-01]. BATTIPs - Советы и приемы по программированию пакетных заданий. MPDOSTIP (на немецком). 7: УРОВЕНЬ ОШИБКИ abfragen. В архиве из оригинала от 23.08.2017. Получено 2017-08-23. [5] [6] (NB. BATTIPS.TXT является частью MPDOSTIP.ZIP. Приведенная ссылка указывает на старую версию файла BATTIPS.TXT, преобразованную в HTML.) [7]
  29. ^ а б c Ауэр, Эрик; Пол, Маттиас Р .; Холл, Джим (2015-12-24) [2003-12-31]. «Уровни ошибок MS-DOS». Архивировано из оригинал на 2015-12-24.
  30. ^ Пол, Матиас Р. (1998-01-09). DELTREE.BAT R1.01 Расширенное удаление файлов и каталогов. Caldera, Inc. Архивировано из оригинал на 2019-04-08. Получено 2019-04-08.
  31. ^ DR-DOS 7.03 WHATSNEW.TXT - Изменения с DR-DOS 7.02 на DR-DOS 7.03. Caldera, Inc. 1998-12-24. Архивировано из оригинал на 2019-04-08. Получено 2019-04-08.
  32. ^ Аллен, Уильям; Аллен, Линда. "УРОВНИ ОШИБОК Windows 95/98 / ME". Архивировано из оригинал на 2011-07-07.

дальнейшее чтение

внешняя ссылка