Переменная среды является динамическим именем значение , которое может повлиять на то , запущенные процессы будут вести себя на компьютере. Они являются частью среды, в которой выполняется процесс. Например, запущенный процесс может запросить значение переменной среды TEMP, чтобы найти подходящее место для хранения временных файлов , или переменную HOME или USERPROFILE, чтобы найти структуру каталогов, принадлежащую пользователю, запускающему процесс.
Они были представлены в их современной форме в 1979 году с версией 7 Unix , поэтому с этого момента они включены во все разновидности и варианты операционных систем Unix, включая Linux и macOS . Начиная с PC DOS 2.0 в 1982 году, все последующие операционные системы Microsoft , включая Microsoft Windows и OS / 2, также включали их в качестве функции, хотя и с несколько другим синтаксисом, использованием и стандартными именами переменных.
Дизайн [ править ]
Во всех Unix и Unix-подобных системах каждый процесс имеет свой собственный отдельный набор переменных среды . По умолчанию при создании процесса он наследует дублирующую среду выполнения своего родительского процесса, за исключением явных изменений, сделанных родителем при создании дочернего процесса. На уровне API эти изменения должны выполняться между запуском fork
и exec
. В качестве альтернативы, из командных оболочек, таких как bash , пользователь может изменять переменные среды для конкретного вызова команды, косвенно вызывая ее через env
или используяENVIRONMENT_VARIABLE=VALUE <command>
обозначение. Запущенная программа может получить доступ к значениям переменных среды для целей конфигурации.
Сценарии оболочки и командные файлы используют переменные среды для передачи данных и предпочтений дочерним процессам . Их также можно использовать для хранения временных значений для последующего использования в сценарии оболочки. Однако в Unix для этого предпочтительны неэкспортированные переменные , поскольку они не просачиваются за пределы процесса.
В Unix переменная среды, измененная в сценарии или скомпилированной программе, будет влиять только на этот процесс и, возможно, на дочерние процессы. Это не повлияет на родительский процесс и любые несвязанные процессы. Точно так же изменение или удаление значения переменной внутри пакетного файла DOS изменит переменную на время ее COMMAND.COM
существования.
В Unix, переменные окружения обычно инициализируется при загрузке системы с помощью системы INIT сценариев запуска , и , следовательно , наследуется всеми другими процессами в системе. Пользователи могут, и часто делают, дополнять их в сценарии профиля для командной оболочки, которую они используют. В Microsoft Windows значение по умолчанию каждой переменной среды хранится в реестре Windows или задается в AUTOEXEC.BAT
файле.
На Unix , УИП программа дается окружение , выбранное вызывающим, но она работает с различными полномочиями от вызывающего. Динамический компоновщик обычно загружать код из мест , указанных переменной среды $LD_LIBRARY_PATH
и $LD_PRELOAD
и запустить его с властью процесса. Если бы это делала программа setuid, это было бы небезопасно, потому что вызывающая программа могла заставить ее запустить произвольный код и, следовательно, злоупотребить своими полномочиями. По этой причине libc сбрасывает эти переменные среды при запуске процесса setuid. Программы setuid обычно сбрасывают неизвестные переменные среды и проверяют другие или устанавливают для них разумные значения.
Синтаксис [ править ]
Переменные можно использовать как в скриптах, так и в командной строке . На них обычно ссылаются, помещая специальные символы перед или вокруг имени переменной. Например, чтобы отобразить домашний каталог пользователя, в большинстве сред сценариев пользователь должен ввести:
echo $ HOME
В интерпретаторах командной строки DOS, OS / 2 и Windows, таких как COMMAND.COM
и cmd.exe
, пользователь должен ввести следующее:
ЭХО % ДОМАШНИЙ%
В Windows PowerShell пользователь должен ввести следующее:
Запись-вывод $ env: HOMEPATH
Команды env
, set
и printenv
отображают все переменные среды и их значения. printenv
также можно использовать для печати одной переменной, задав это имя переменной в качестве единственного аргумента команды.
Назначение [ править ]
Команды env
и set
также используются для установки переменных среды и часто включаются непосредственно в оболочку.
Unix [ править ]
В Unix также могут использоваться следующие команды, но они часто зависят от определенной оболочки.
ПЕРЕМЕННАЯ = значение #экспорт ПЕРЕМЕННОЙ # для Bourne и связанных оболочек
export VARIABLE = value # для ksh , bash и связанных оболочек
setenv VARIABLE value # для csh и связанных оболочек
Несколько простых принципов определяют, как переменные среды достигают своего эффекта.
Переменные среды являются локальными для процесса, в котором они были установлены. Если создаются два процесса оболочки и значение переменной среды изменяется в одном, это изменение не будет замечено другим.
Когда создается дочерний процесс, он наследует все переменные среды и их значения от родительского процесса. Обычно, когда программа вызывает другую программу, она сначала создает дочерний процесс путем разветвления , затем дочерний процесс регулирует среду по мере необходимости и, наконец, дочерний процесс заменяет себя программой, которая должна быть вызвана. Эта процедура дает вызывающей программе контроль над средой вызываемой программы.
В Unix и Unix-подобных системах имена переменных среды чувствительны к регистру.
В оболочках Unix переменные можно назначать без export
ключевого слова. Переменные, определенные таким образом, отображаются set
командой, но не являются истинными переменными среды, поскольку они хранятся только оболочкой и неизвестны всем остальным процессам. Команда printenv
не будет их отображать, и дочерние процессы не наследуют их.
ПЕРЕМЕННАЯ = значение
Синтаксис префикса экспортирует "истинную" переменную среды в дочерний процесс, не влияя на текущий процесс: [1]
ПЕРЕМЕННАЯ = значение имя_программы [аргументы]
Постоянство переменной среды может быть общесессионным или общесистемным.
unset - это встроенная команда, реализованная как семейством оболочки Bourne (sh, ksh, bash и т. д.), так и семейством оболочки C (csh, tcsh и т. д.) оболочек командной строки Unix . Он сбрасывает переменную оболочки, удаляя ее из памяти и экспортированной среды оболочки. Он реализован как встроенная оболочка , поскольку напрямую управляет внутренними компонентами оболочки. [2] [3] Переменные оболочки, доступные только для чтения, не могут быть сброшены. Если кто-то пытается отключить переменную, доступную только для чтения, команда unset распечатает сообщение об ошибке и вернет ненулевой код выхода.
DOS, OS / 2 и Windows [ править ]
В интерпретаторах командной строки DOS, OS / 2 и Windows, таких как COMMAND.COM
и cmd.exe
, SET
команда используется для назначения переменных и значений среды с использованием следующих аргументов:
УСТАНОВИТЬ ПЕРЕМЕННУЮ = значение
Команда SET
без аргументов отображает все переменные среды вместе с их значениями.
Примеры [ править ]
Примеры переменных среды:
PATH
: список путей к каталогам. Когда пользователь вводит команду без указания полного пути, этот список проверяется, чтобы увидеть, содержит ли он путь, ведущий к команде.HOME
( Unix-like ) иUSERPROFILE
(Microsoft Windows): указывают, где в файловой системе находится домашний каталог пользователя .HOME/{.AppName}
( Unix-like ) иAPPDATA\{DeveloperName\AppName}
(Microsoft Windows): для хранения настроек приложения. Многие приложения неправильно используютUSERPROFILE
настройки приложений в Windows:USERPROFILE
следует использовать только в диалоговых окнах, которые позволяют пользователю выбирать между путями, напримерDocuments/Pictures/Downloads/Music
; для программных целейAPPDATA
(для настроек перемещаемого приложения, совместно используемых на нескольких устройствах),LOCALAPPDATA
(для настроек локального приложения) илиPROGRAMDATA
(для настроек приложения, совместно используемых несколькими пользователями ОС). [4]TERM
( Unix-like ): указывает тип используемого компьютерного терминала или эмулятора терминала (например,vt100
илиdumb
).PS1
( Unix-like ): указывает, как приглашение отображается в оболочке Bourne и в вариантах.MAIL
( Unix-like ): используется, чтобы указать, где находится почта пользователя.TEMP
: место, где процессы могут хранить временные файлы.
Истинные переменные среды [ править ]
Unix [ править ]
$PATH
- Содержит список каталогов, разделенных двоеточиями, в которых оболочка ищет команды, в имени которых нет косой черты (команды с косой чертой интерпретируются как имена файлов для выполнения, и оболочка пытается выполнить файлы напрямую). Это эквивалент переменной DOS , OS / 2 и Windows
%PATH%
.
$HOME
- Содержит расположение домашнего каталога пользователя . Хотя домашний каталог текущего пользователя также можно узнать с помощью C-функций
getpwuid
иgetuid
,$HOME
он часто используется для удобства в различных сценариях оболочки (и других контекстах). Использование переменной среды также дает пользователю возможность указать на другой каталог.
$PWD
- Эта переменная указывает на текущий каталог. Эквивалентно выводу команды pwd при вызове без аргументов.
$DISPLAY
- Содержит идентификатор дисплея, который программы X11 должны использовать по умолчанию.
$LD_LIBRARY_PATH
- Во многих системах Unix с динамическим компоновщиком содержит список каталогов, разделенных двоеточиями, в которых динамический компоновщик должен искать общие объекты при построении образа процесса после
exec
, перед поиском в любых других каталогах.
$LIBPATH
или же$SHLIB_PATH
- Альтернативы
$LD_LIBRARY_PATH
обычно используемым в более старых версиях Unix.
$LANG, $LC_ALL, $LC_...
$LANG
используется для установки языкового стандарта по умолчанию . Например, если значения локали равныpt_BR
, то язык установлен на (бразильский) португальский, и там, где это уместно, используется бразильская практика. Различные аспекты локализации контролируются отдельными$LC_
-переменными ($LC_CTYPE
, и т. Д.). может использоваться для принудительного использования одного и того же языкового стандарта для всех аспектов.$LC_COLLATE
$LC_DATE
$LC_ALL
$TZ
- Относится к часовому поясу . Он может быть в нескольких форматах, либо с указанием самого часового пояса, либо со ссылкой на файл (в
/usr/share/zoneinfo
).
$BROWSER
- Содержит разделенный двоеточиями список предпочтений веб-браузера пользователя для использования программами, которым необходимо разрешить пользователю просматривать контент по URL-адресу . Предполагается, что браузеры в списке будут выполняться от первого до последнего, останавливаясь после первого успешного. Такая компоновка допускает резервное поведение в различных средах, например, в среде X11 можно использовать графический браузер (такой как Firefox ), но в консольной среде можно использовать браузер терминальной базы (такой как Lynx ).
%s
Маркер может присутствовать , чтобы указать , где URL - адрес должен быть помещен; в противном случае браузер должен запускаться с URL-адресом в качестве первого аргумента. [5] [6] [7] [8][9]
DOS [ править ]
В DOS основная среда предоставляется основным командным процессором, который наследует предварительную среду, определенную CONFIG.SYS
при первой загрузке. Его размер можно настроить с помощью COMMAND /E:n
параметра от 160 [10] до 32767 [10] байтов. Сегменты локальной среды, унаследованные от дочерних процессов, обычно уменьшаются до размера содержимого, которое они содержат. Некоторые процессоры командной строки (например, 4DOS ) позволяют определить минимальный объем свободного пространства среды, которое будет доступно при запуске вторичных оболочек. [10] Хотя содержимое переменных среды остается неизменным при хранении, их имена (без "%
") всегда преобразуются в верхний регистр, за исключением переменных среды, определенных с помощью CONFIG.SYS
директивы SET
в DR DOS 6.0 и выше [11] [12] (и только с SWITCHES=/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-DOSCOMMAND.COM
поддерживает переменные среды до 255, 4DOS даже до 512 символов. [10] ПосколькуCOMMAND.COM
можно настроить (через/L:128..1024
) для внутренней поддержки командных строк до 1024 символов в MS-DOS 7.0 и выше, переменные среды также должны содержать не менее 1024 символов. В некоторых версиях DR-DOS среда, передаваемая драйверам, которым часто не нужна их среда после установки, может быть уменьшена или перемещена с помощью SETENV
или INSTALL[HIGH]
/ LOADHIGH
options /Z
(нулевая среда), (заменить диск, например ) и (переместить среду над программой ), чтобы свести к минимуму фактически получаемый драйвером объем резидентной памяти. [14] [13] [11] [15] [16] [17]/D[:loaddrive]
B:TSR.COM
/E
В пакетном режиме несуществующие переменные среды заменяются строкой нулевой длины.
Стандартные переменные среды или зарезервированные переменные среды включают:
%APPEND%
(поддерживается с DOS 3.3)- Эта переменная содержит разделенный точкой с запятой список каталогов, в которых следует искать файлы. Обычно его изменяют с помощью
APPEND /E
команды, которая также обеспечивает преобразование имен каталогов в верхний регистр. Некоторое программное обеспечение DOS фактически ожидает, что имена будут храниться в верхнем регистре, а длина списка не будет превышать 121 [10] символа, поэтому переменную лучше не изменять с помощьюSET
команды. Длинные имена файлов, содержащие пробелы или другие специальные символы, не должны заключаться в кавычки ("
).
%CONFIG%
(поддерживается начиная с MS-DOS 6.0 и PC DOS 6.1 , также поддерживается ROM-DOS [18] )- Эта переменная содержит символическое имя выбранной в данный момент конфигурации загрузки. В BIOS DOS (
IO.SYS
,IBMBIO.COM
и т. Д.) Ему присваивается имя, определенное соответствующейCONFIG.SYS
директивойMENUITEM
перед запуском основного командного процессора. Его основная цель - разрешить другие особые случаиAUTOEXEC.BAT
и аналогичные пакетные задания в зависимости от выбранной опции во время загрузки. Это можно эмулировать в DR-DOS с помощьюCONFIG.SYS
директивыSET
вродеSET CONFIG=1
.
%CMDLINE%
(введено в 4DOS , также поддерживается с MS-DOS 7.0 )- Эта переменная содержит полностью развернутый текст выполняющейся в данный момент командной строки. Его могут читать приложения, чтобы обнаруживать использование и извлекать длинные командные строки, поскольку традиционный метод извлечения аргументов командной строки через PSP (или связанные функции API ) ограничен 126 символами и больше не доступен, когда FCB расширяются. или используется DTA по умолчанию . Хотя 4DOS поддерживает более длинные командные строки, по-
COMMAND.COM
прежнему поддерживает максимум 126 символов в приглашении по умолчанию (если не переопределено с помощью/U:128..255
для указания размера буфера командной строки), но, тем не менее, внутренние командные строки могут стать длиннее из-за расширения переменной fe (в зависимости от/L:128..1024
чтобы указать размер внутреннего буфера). В дополнение к байту длины командной строки в PSP, командная строка PSP обычно ограничивается ASCII-13 , а командные строки длиной более 126 символов обычно усекаются путем вставки ASCII-13 в позицию 127, [12] но нельзя полагаться на это во всех сценариях. [12] [nb 2] Переменная будет подавлена для внешних команд, вызываемых с предшествующим@
символом, как в,@XCOPY ...
для обратной совместимости и для минимизации размера среды при загрузке неперемещаемых TSR . Использовались некоторые бета-версии Microsoft Chicago%CMDLINE%
для хранения только оставшейся части командной строки, превышающей 126 символов, вместо полной командной строки. [11] [12]
%COMSPEC%
(поддерживается с DOS 2.0)- Эта переменная содержит полный путь 8.3 к командному процессору , обычно или . Он не должен содержать длинных имен файлов , но в DR-DOS он может содержать пароли файлов и каталогов. Он настраивается основным командным процессором так, чтобы указывать на себя (обычно это отражает настройки директивы ), так что резидентная часть командного процессора может перезагружать свою переходную часть с диска после выполнения более крупных программ. Значение можно изменить во время выполнения, чтобы отразить изменения в конфигурации, которые потребуют от командного процессора перезагрузки из других мест. Переменная также используется при запуске второстепенных снарядов.
C:\COMMAND.COM
C:\DOS\COMMAND.COM
CONFIG.SYS
SHELL
%COPYCMD%
(поддерживается с MS-DOS 6.2 и PC DOS 6.3 , также поддерживается ROM-DOS [18] )- Позволяет пользователю указать
/Y
переключатель (считать «Да» на запросы) по умолчанию дляCOPY
,XCOPY
иMOVE
команд. Значение по умолчанию/Y
можно изменить , указав/-Y
переключатель в командной строке./Y
Переключатель инструктирует команду , чтобы заменить существующие файлы без запроса подтверждения.
%DIRCMD%
(поддерживается, начиная с MS-DOS 5.0 и PC DOS 5.0 , также поддерживается ROM-DOS [18] )- Позволяет пользователю указать индивидуальные параметры по умолчанию для
DIR
команды, включая спецификации файлов. Предустановленные переключатели по умолчанию можно переопределить, указав отрицательный переключатель в командной строке. Например, если он%DIRCMD%
содержит/W
переключатель, его можно переопределить, используяDIR /-W
в командной строке. Это похоже на переменную среды%$DIR%
в DOS Plus [19] и средство для определения переключателей по умолчанию дляDIR
своих переключателей/C
или/R
в DR-DOSCOMMAND.COM
. [11]%DIRCMD%
также поддерживается командами externalSDIR.COM
/DIR.COM
Stacker в Novell DOS 7 и выше. [11]
%LANG%
(поддерживается с MS-DOS 7.0 )- Эта переменная поддерживается некоторыми инструментами для переключения языкового стандарта для сообщений в многоязычных проблемах.
%LANGSPEC%
(поддерживается с MS-DOS 7.0 )- Эта переменная поддерживается некоторыми инструментами для переключения языкового стандарта для сообщений в многоязычных проблемах.
%NO_SEP%
(поддерживается с PC DOS 6.3 и DR-DOS 7.07 )- Эта переменная управляет отображением разделителей тысяч в сообщениях различных команд. Выдаваемые по умолчанию, их можно подавить, указав
SET NO_SEP=ON
илиSET NO_SEP=1
в PC DOS. DR-DOS дополнительно позволяет переопределить системный разделитель тысяч, отображаемый, как в feSET NO_SEP=.
. [10]
%PATH%
(поддерживается с DOS 2.0)- Эта переменная содержит список каталогов, разделенных точками с запятой, в которых интерпретатор команд будет искать исполняемые файлы . Эквивалентен
$PATH
переменной Unix (но некоторые приложения DOS и Windows также используют этот список для поиска файлов данных, как в$LD_LIBRARY_PATH
Unix-подобных системах). Обычно его можно изменить с помощью командыPATH
(илиPATH /E
в MS-DOS 6.0 ), которая также обеспечивает преобразование имен каталогов в верхний регистр. Некоторое программное обеспечение DOS фактически ожидает, что имена будут сохранены в верхнем регистре, а длина списка не будет превышать 123 [10] символов, [nb 1], поэтому переменную лучше не изменять с помощьюSET
команды. [10] Длинные имена файлов, содержащие пробелы или другие специальные символы, не должны заключаться в кавычки ("
). По умолчанию сначала выполняется поиск в текущем каталоге, но некоторые процессоры командной строки, такие как 4DOS, позволяют также.
включать " " (для "текущего каталога") в список, чтобы переопределить этот порядок поиска; некоторые программы DOS несовместимы с этим расширением. [10]
%PROMPT%
(поддерживается с DOS 2.0)- Эта переменная содержит
$
строку с символами, определяющую отображение подсказки . Обычно его меняют с помощьюPROMPT
команды.
%TEMP%
(и%TMP%
)- Эти переменные содержат путь к каталогу, в котором должны храниться временные файлы . Обычно используются только инструменты операционной системы
%TEMP%
, в то время как сторонние программы также используют%TMP%
. Обычно%TEMP%
имеет приоритет%TMP%
.
Семейство DR-DOS поддерживает ряд дополнительных стандартных переменных среды, включая:
%BETA%
- Эта переменная содержит необязательное сообщение, отображаемое некоторыми версиями (включая 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
), используемый поINSTALL
иSETUP
команд и различных программ DR-DOS , какDISKOPT
,DOSBOOK
,EDIT
,FBX
,FILELINK
,LOCK
,SECURITY.OVL
/NWLOGIN.EXE
,SERNO
,TASKMAX
,TASKMGR
,VIEWMAX
, илиUNDELETE
. [11] Он не должен содержать длинных имен файлов .
%DRCOMSPEC%
- Эта переменная необязательно содержит альтернативный путь к командному процессору, имеющий приоритет над путем, определенным в
%COMSPEC%
переменной, необязательно включая пароли файлов и каталогов. В качестве альтернативы он может содержать специальное значение «ON
» или «1
» для принудительного использования%COMSPEC%
переменной даже в сценариях, где%COMSPEC%
переменная может указывать на неправильный процессор командной строки, например, при запуске некоторых версий DR-SYS
Команда DOS под чужой операционной системой. [22]
%DRSYS%
- Установка для этой переменной значения "
ON
" или "1
" заставит некоторые версии команды DR-DOSSYS
работать в чужих операционных системах вместо отображения предупреждения. [22]
%FBP_USER%
- Задает имя пользователя , используемое в фастбэк команды
FBX
и конфигурационные файлы под Novell DOS 7 . [11]{user}.FB
%HOMEDIR%
- Эта переменная может содержать домашний каталог DR-DOS (включая DR DOS 5.0 и 6.0 ). [11] [20]
%INFO%
- В некоторых версиях DR-DOS
COMMAND.COM
эта переменная определяет строку, отображаемую$I
токеномPROMPT
команды. [20] Его можно использовать, например, для информирования пользователя о том, как выйти из вторичных оболочек.
%LOGINNAME%
- В некоторых версиях DR-DOS
COMMAND.COM
эта переменная определяет имя пользователя, отображаемое$U
токеномPROMPT
команды, как установлено, например, сценариями входа в систему для Novell NetWare . [10] [11] [20] См. Также псевдопеременную с аналогичным названием%LOGIN_NAME%
.
%MDOS_EXEC%
- Эта переменная может принимать значения "
ON
" или "OFF
" в многопользовательской DOS . Если этот параметр включен, операционная система позволяет приложениям выполнять оболочку для вторичных оболочек с освобожденной программной областью DOS (DPA), чтобы иметь максимальную память DOS, доступную для дополнительных приложений, вместо того, чтобы запускать их в том же домене, что и под DOS. [23] [24]
%NOCHAR%
- Эта переменная может использоваться для определения символа, отображаемого некоторыми командами в сообщениях для «Нет» в
[Y,N]
запросах, тем самым отменяя текущее значение по умолчанию в системе (обычно «N
» в английских версиях DR-DOS). Если он содержит строку, будет взят только первый символ в верхнем регистре. Некоторые команды также поддерживают параметр командной строки,/Y
чтобы автоматически принимать «Да» на запросы, тем самым подавляя такие запросы. Однако, если параметр/Y:yn
используется для указания символов «Да» / «Нет» (тем самым отменяя любые%NOCHAR%
настройки), запросы не подавляются. См. Также соответствующуюCONFIG.SYS
директивуNOCHAR
и переменную окружения%YESCHAR%
. [22]
%NOSOUND%
- Установка для этой переменной значения "
ON
" или "1
" отключит звуковые сигналы по умолчанию, выдаваемые некоторыми командами DR-DOS в определенных ситуациях, например, для информирования пользователя о завершении некоторой операции, о том, что требуется взаимодействие с пользователем или когда была нажата неправильная клавиша. Параметры командной строки для включения определенных звуковых сигналов имеют приоритет над этим параметром.
%OS%
- Эта переменная содержит имя операционной системы, чтобы различать различные связанные с DOS операционные системы Digital Research -origin в пакетных заданиях и приложениях. [21] Известные значения включают "
DOSPLUS
" ( DOS Plus 1.2 в эмуляции DOS), "CPCDOS 4.1
" (DOS Plus 1.2 в эмуляции CP / M ), "DRDOS
" ( DR DOS 3.31 - 6.0 , DR DOS Panther , DR DOS StarTrek , DR-DOS 7.02 [21] - 7.05 ), "EZDOS
" ( EZ-DOS 3.41 ), "PALMDOS
" и "NetWare PalmDOS
" ( PalmDOS 1.0 ), "NWDOS
"(Novell DOS 7 ), "NWDOS7
" (Novell DOS 7 Beta), "OPENDOS
" ( Caldera OpenDOS 7.01 , Caldera DR-OpenDOS 7.02 ), "CDOS
" ( Concurrent DOS , Concurrent DOS XM ), "CPCDOS
" ( Concurrent PC DOS ), "CDOS386
" ( Concurrent DOS 386 ), "DRMDOS
" ( Многопользовательская DOS DR ), "MDOS
" ( Многопользовательская DOS CCI ), [23] "IMSMDOS
" ( Многопользовательская DOS IMS ), "REAL32
" ( REAL / 32 ). [11] [25] MS-DOS такжеINTERSVR
ищет значение "DRDOS
".[25]См. Также переменную среды с таким же именем,%OS%
представленную позже в семействе Windows NT .
%PEXEC%
- В некоторых версиях DR-DOS эта переменная определяет команду, выполняемую
$X
токеномPROMPT
команды доCOMMAND.COM
отображения подсказки после возврата из выполнения внешней программы. [11] [21]
%SWITCHAR%
- Эта переменная определяет SwitChar, который будет использоваться для синтаксического анализа аргументов некоторыми командами DR-DOS. Если он определен, он переопределяет текущую настройку SwitChar системы. Допускаются только символы «
/
» (стиль DOS), «-
» (стиль Unix) и «[
» (стиль CP / M). См. Также соответствующуюCONFIG.SYS
директивуSWITCHAR
(для установки системного параметра SwitChar) и%/%
переменную системной информации в некоторых выпусках DR-DOSCOMMAND.COM
(для получения текущего параметра для переносимых пакетных заданий).
%TASKMGRWINDIR%
- Эта переменная определяет каталог, в котором находится Windows,
SYSTEM.INI
которая будет использоватьсяTASKMGR
многозадачным DR-DOS , отменяя процедуру по умолчанию для поиска файла. [11]
%VER%
- Эта переменная содержит версию операционной системы, чтобы различать разные версии DR-DOS в пакетных заданиях и при отображении
VER
команды. [21] Он также используется для$V
токенаPROMPT
команды и влияет на значение, возвращаемое переменной системной информации%OS_VERSION%
. Известные значения включают "1.0
" ( PalmDOS 1.0 ), "1.2
" ( DOS Plus 1.2 в эмуляции DOS), "2.0
" ( Concurrent DOS 386 2.0 ), "3.0
" ( Concurrent 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.41T
"( DR DOS 3.41T ),"4.1
"( параллельный ПК DOS 4.1 ), "5.0
" ( DR DOS 5.0 , DR Multiuser DOS 5.0 ), "5.1
" ( Novell DR Multiuser DOS 5.1 ), "6.0
" ( DR Concurrent DOS XM 6.0 , DR DOS 6.0 ), "6.2
" ( DR Concurrent DOS XM 6.2 ) , "7
" ( Novell DOS 7 ,Caldera OpenDOS 7.01 ,DR-DOS 7.02 - 7.05 ), "7.00
" ( CCI Multiuser DOS 7.00 ), "7.07
" ( DR-DOS 7.07 ), "7.1
" ( IMS Multiuser DOS 7.1 ), "7.21
" ( CCI Multiuser DOS 7.21 ), [23] "7.22
" ( CCI Multiuser DOS 7.22 ) и т. Д. [11] [25] [23]
%YESCHAR%
- Эту переменную можно использовать для определения символа, отображаемого некоторыми командами в сообщениях для «Да» в
[Y,N]
запросах, тем самым отменяя текущие системные значения по умолчанию (обычно «Y
» в английских версиях DR-DOS). Если он содержит строку, будет взят только первый символ в верхнем регистре. Некоторые команды также поддерживают параметр командной строки,/Y
чтобы автоматически принимать «Да» на запросы, тем самым подавляя такие запросы. Если, однако, параметр/Y:y
используется для указания символа «Да» (тем самым отменяя любую%YESCHAR%
настройку), запросы не подавляются. См. Также соответствующуюCONFIG.SYS
директивуYESCHAR
и переменную окружения%NOCHAR%
. [22]
%$CLS%
- Эта переменная определяет управляющую последовательность для отправки на драйвер консоли , чтобы очистить экран , когда
CLS
выдается команда, тем самым перекрывая внутреннее значение по умолчанию ( «←[2J
„под DR-DOS“←E
» под DOS Plus 1.2 на машинах Amstrad [19] , а также как в Concurrent DOS , Multiuser DOS и REAL / 32 для терминалов VT52 или "←+
" в Multiuser DOS для терминалов ASCII ). [23] Если переменная не определена иANSI.SYS
драйвер консоли не обнаружен, DR-DOSCOMMAND.COM
очистит экран напрямую через функциюINT 10h/AH=00h
BIOS , например MS-DOS / PC DOS.COMMAND.COM
делает.\nnn
Поддерживается специальная нотация для восьмеричных чисел , позволяющая определять специальные символы, такие как ESC ( ASCII-27 = "←" = 1Bh = 33o), например, вSET $CLS=\033[2J
. Чтобы отправить\
саму обратную косую черту (" "), ее можно удвоить "\\
". [11] [20] [23]
%$DIR%
- Поддерживается DOS Plus, принимая значения «L» (длинный) или «W» (широкий), чтобы изменить расположение списков каталогов по умолчанию с помощью DIR . Может быть переопределено с помощью параметров командной строки
/L
или/W
. [20] [19] См также аналогичная переменная окружения%DIRCMD%
иDIR
варианты/C
и/R
в DR-DOS COMMAND.COM. [11]
%$PAGE%
- Поддерживается DOS Plus, принимающим значения "
ON
" или "OFF
" для управления разбивкой на страницы. Установка этого параметра на "ON
" имеет тот же эффект, что и добавление/P
к поддерживающим его командам (например, DIR или TYPE ). [20] [19]
%$LENGTH%
- Используется DOS Plus для определения длины экрана консоли в строках. Это используется для портативного управления, когда вывод на экран должен быть временно остановлен до тех пор, пока не будет нажата клавиша в сочетании с
/P
опцией, поддерживаемой различными командами, или с автоматической разбивкой на страницы. [20] [19] См. Также связанные переменные среды%$WIDTH%
и%DIRSIZE%
аналогичную псевдопеременную%_ROWS%
.
%$WIDTH%
- Используется DOS Plus для определения ширины экрана консоли в столбцах. Это используется для портативного управления форматированием вывода на экран таких команд, как
DIR /W
илиTYPE filename
. [20] [19] См. Также связанные переменные среды%$LENGTH%
и%DIRSIZE%
аналогичную псевдопеременную%_COLUMNS%
.
%$SLICE%
- Используется DOS Plus, принимая числовое значение для управления временным интервалом переднего плана / фона многозадачных программ. [20] [19] См. Также команду DOS Plus
SLICE
.
%$ON%
- Эта переменная может содержать необязательную управляющую последовательность для включения выделения, реверсирования или раскрашивания текста. Он используется для выделения или иного управления отображением имен файлов в командах
TYPE wildcard
, например,SET $ON=\033[1m
при загруженном ANSI.SYS илиSET $ON=\016
для принтера IBM или ESC / P. О\nnn
поддерживаемых специальных восьмеричных обозначениях см%$CLS%
. [11] [19] В то время как переменная по умолчанию не определена в DOS Plus и DR-DOS, многопользовательская DOS по умолчанию для терминала ASCII равнаSET $ON=\033p
. [20] [23] См. Также связанную переменную среды%$OFF%
.
%$OFF%
- Эта переменная может содержать необязательную управляющую последовательность для отключения выделения, реверсии или раскрашивания текста. Он используется для возврата к нормальному выводу после отображения имен файлов в таких командах, как
TYPE wildcard
, например,SET $OFF=\033[0m
при загруженном ANSI.SYS илиSET $OFF=\024
для принтера IBM или ESC / P. О\nnn
поддерживаемых специальных восьмеричных обозначениях см%$CLS%
. [11] [19] В то время как переменная по умолчанию не определена в DOS Plus и DR-DOS, многопользовательская DOS по умолчанию для терминала ASCII равнаSET $OFF=\033q
. [20] [23] См. Также связанную переменную среды%$ON%
.
%$HEADER%
- Эта переменная может содержать необязательную управляющую последовательность, выдаваемую перед выводом содержимого файла в командах, как
TYPE
в DR-DOS 7.02 и выше. Он может быть использован для выделения, пагинации или форматирования, Ого при отправке вывода на принтер, то естьSET $HEADER=\017
для IBM или ESC / P принтер. О\nnn
поддерживаемых специальных восьмеричных обозначениях см%$CLS%
. [20] См. Также соответствующую переменную среды%$FOOTER%
.
%$FOOTER%
- Эта переменная может содержать необязательную управляющую последовательность, выдаваемую после вывода содержимого файла в командах, как
TYPE
в DR-DOS 7.02 и выше. Он используется для возврата к нормальному формату вывода, то естьSET $FOOTER=\022\014
в примере с принтером выше. О\nnn
поддерживаемых специальных восьмеричных обозначениях см%$CLS%
. [20] См. Также соответствующую переменную среды%$HEADER%
.
Datalight ROM-DOS также поддерживает ряд дополнительных стандартных переменных среды, включая:
%DIRSIZE%
- Эта переменная используется для определения строк [, столбцов] нестандартных размеров экрана для
DIR
параметров / P и / W (аналогично%$LENGTH%
и%$WIDTH%
под DOS Plus). [18]
%NEWFILE%
- Эта переменная автоматически устанавливается на первый параметр, указанный в директиве NEWFILE CONFIG.SYS . [18]
%TZ%
, %COMM%
, %SOCKETS%
, %HTTP_DIR%
, %HOSTNAME%
И %FTPDIR%
также используются ROM-DOS. [18]
OS / 2 [ править ]
%BEGINLIBPATH%
- Содержит список каталогов, разделенных точкой с запятой, в которых выполняется поиск библиотек DLL перед каталогами, заданными
%LIBPATH%
переменной (которая устанавливается при запуске системы с помощью специальной директивы CONFIG.SYSLIBPATH
). Здесь можно указать относительные каталоги, включая ".
" для текущего рабочего каталога. См. Также соответствующую переменную среды%ENDLIBPATH%
.
%ENDLIBPATH%
- список каталогов , в которых производится поиск библиотек DLL , как
%BEGINLIBPATH%
, но искал после списка каталогов%LIBPATH%
.
Windows [ править ]
Переменные системного пути [ необходима цитата ] относятся к расположению критических ресурсов операционной системы и, как таковые, обычно не зависят от пользователя.
%APPDATA%
- Содержит полный путь к каталогу Application Data вошедшего в систему пользователя. Не работает в Windows NT 4.0 SP6 UK.
%LOCALAPPDATA%
- Эта переменная - временные файлы Applications . Его использование включает хранение тем рабочего стола , отчеты об ошибках Windows , кеширование и профили веб-браузеров.
%ComSpec%
/%COMSPEC%
%ComSpec%
Переменная содержит полный путь к командному процессору; на семействе Windows NT операционных систем, это cmd.exe , в то время как на Windows 9x ,%COMSPEC%
является COMMAND.COM .
%OS%
%OS%
Переменная содержит символическое имя семейства операционной системы , чтобы различать между различными наборами функций в batchjobs . Он напоминает переменную среды с одинаковым именем, которая%OS%
присутствует во всех связанных с DOS операционных системах Digital Research, таких как Concurrent DOS, Multiuser DOS , REAL / 32, DOS Plus , DR DOS , Novell DOS и OpenDOS.%OS%
всегда содержит строку "Windows_NT
" в семействе Windows NT . [26]
%PATH%
- Эта переменная содержит разделенный точками с запятой (не ставьте пробелы между ними) список каталогов, в которых интерпретатор команд будет искать исполняемый файл, соответствующий заданной команде. Переменные среды, представляющие пути, могут быть вложены в
%PATH%
переменную, но только на одном уровне косвенности. Если эта переменная среды субпутья сама содержит переменную среды, представляющую путь,%PATH%
не будет правильно расширяться при подстановке переменных. Эквивалент переменной Unix$PATH
.
%ProgramFiles%
,%ProgramFiles(x86)%
,%ProgramW6432%
- В
%ProgramFiles%
точки переменной в Program Files каталог, в котором хранятся все установленные программы в Windows , и другие. По умолчанию в англоязычных системах установлено "C:\Program Files
". В 64-битных выпусках Windows (XP, 2003, Vista) также есть%ProgramFiles(x86)%
, для которых по умолчанию используется значение «C:\Program Files (x86)
», и для%ProgramW6432%
которого используется значение по умолчанию «C:\Program Files
». Само по%ProgramFiles%
себе зависит от того, является ли процесс, запрашивающий переменную среды, 32-битным или 64-битным (это вызвано перенаправлением 64-битной Windows-on-Windows ).
%CommonProgramFiles%
- Эта переменная указывает на каталог Common Files . По умолчанию
C:\Program Files\Common Files
в английской версии Windows установлено значение «».
%SystemDrive%
%SystemDrive%
Переменный специальная общесистемная переменная среды находится на Windows NT и ее производные. Его значение - это диск, на котором был размещен системный каталог. В%SystemDrive%
большинстве случаев значение равно "C:
".
%SystemRoot%
%SystemRoot%
Переменная специальная общесистемного переменная среды находится на семейства Windows NT операционных систем. Его значение - это расположение системного каталога, включая диск и путь. Диск такой же, как%SystemDrive%
и путь по умолчанию при чистой установке, зависит от версии операционной системы. По умолчанию:- Windows XP и более новые версии используют "
\WINDOWS
". - Windows 2000 , NT 4.0 и NT 3.1 используют "
\WINNT
". - Windows NT 3.5 и NT 3.51 использует "
\WINNT35
". - Терминальный сервер Windows NT 4.0 использует "
\WTSRV
".
- Windows XP и более новые версии используют "
%windir%
- Эта переменная указывает на каталог Windows . (В операционных системах семейства Windows NT он идентичен
%SystemRoot%
переменной). Windows 95 , Windows 98 и Windows ME по умолчанию устанавливаются в "C:\Windows
". Для других версий Windows см.%SystemRoot%
Запись выше.
Переменные управления пользователями [ необходима ссылка ] хранят информацию, относящуюся к ресурсам и настройкам, принадлежащим различным профилям пользователей в системе. Как правило, эти переменные не относятся к критическим системным ресурсам или расположениям, которые необходимы для работы ОС.
%ALLUSERSPROFILE%
(%PROGRAMDATA%
начиная с Windows Vista)- Эта переменная расширяется до полного пути к каталогу профиля « Все пользователи» . Этот профиль содержит ресурсы и настройки, которые используются всеми системными учетными записями. Сочетания ссылка скопированная на All Users \» меню Пуска или настольных каталоги появится в каждом пользователе в меню Пуска или рабочем столе , соответственно.
%USERDOMAIN%
- Имя рабочей группы или домена Windows, к которому принадлежит текущий пользователь. Связанная переменная
%LOGONSERVER%
,, содержит имя хоста сервера, который аутентифицировал учетные данные текущего пользователя (имя и пароль). Для домашних ПК и ПК в рабочей группе сервером аутентификации обычно является сам ПК. Для ПК в домене Windows сервер аутентификации является контроллером домена (основным контроллером домена или PDC в доменах под управлением Windows NT 4).
%USERPROFILE%
- Специальная общесистемная переменная среды, встречающаяся в Windows NT и ее производных. Его значением является расположение каталога профиля текущего пользователя, в котором находится куст реестра HKCU этого пользователя (
NTUSER
). Пользователи также могут использовать%USERNAME%
переменную для определения идентификатора входа активного пользователя.
Необязательные системные переменные [ необходима цитата ] по умолчанию не указываются явно, но могут использоваться для изменения поведения по умолчанию некоторых встроенных консольных команд. Эти переменные также не нужно явно указывать в качестве аргументов командной строки.
Значения по умолчанию [ править ]
В следующих таблицах показаны типичные значения по умолчанию для определенных переменных среды в английских версиях Windows, поскольку они могут быть получены в CMD
.
(Некоторые из этих переменных также определяются при работе COMMAND.COM
под Windows, но отличаются некоторыми важными деталями: в разделе COMMAND.COM
имена переменных среды всегда пишутся в верхнем регистре. Некоторые, но не все переменные содержат короткие имена файлов 8.3, а не длинные . Хотя некоторые переменные присутствуют в CMD
среде отсутствуют, есть также некоторые переменные, специфичные для COMMAND
среды.)
Переменная | Зависит от локали | Windows XP (CMD) | Windows Vista и более поздние версии (CMD) |
---|---|---|---|
% ALLUSERSPROFILE% [27] | да | C: \ Documents and Settings \ All Users | C: \ ProgramData [27] |
% APPDATA% [27] | да | C: \ Documents and Settings \ {имя пользователя} \ Application Data | C: \ Users \ {имя пользователя} \ AppData \ Roaming [27] |
% CommonProgramFiles% [27] | да | C: \ Program Files \ Общие файлы | C: \ Program Files \ Common Files [27] |
% CommonProgramFiles (x86)% [27] | да | C: \ Program Files (x86) \ Common Files (только в 64-битной версии) | C: \ Program Files (x86) \ Common Files (только в 64-битной версии) [27] |
% CommonProgramW6432% [27] | да | % CommonProgramW6432% (не поддерживается, не заменяется никаким значением) | C: \ Program Files \ Common Files (только в 64-битной версии) [27] |
%ИМЯ КОМПЬЮТЕРА% | Нет | {Имя компьютера} | {Имя компьютера} |
% ComSpec% | Нет | C: \ Windows \ System32 \ cmd.exe | C: \ 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 |
% ProgramData% [27] | да | % ProgramData% (не поддерживается, не заменяется никаким значением) | % SystemDrive% \ ProgramData [27] |
% ProgramFiles% [27] | да | % SystemDrive% \ Program Files | % SystemDrive% \ Program Files [27] |
% ProgramFiles (x86)% [27] | да | % SystemDrive% \ Program Files (x86) (только в 64-битной версии) | % SystemDrive% \ Program Files (x86) (только в 64-битной версии) [27] |
% ProgramW6432% [27] | да | % ProgramW6432% (не поддерживается, не заменяется никаким значением) | % SystemDrive% \ Program Files (только в 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% ), % USERPROFILE% \ AppData \ Local \ Temp [27] (для переменных среды пользователя % TMP% и % TEMP% ) |
% USERDOMAIN% | Нет | {userdomain} | {userdomain} |
%ИМЯ ПОЛЬЗОВАТЕЛЯ% | Нет | {имя пользователя} | {имя пользователя} |
% USERPROFILE% [27] | да | % SystemDrive% \ Documents and Settings \ {имя пользователя} | % SystemDrive% \ Users \ {имя пользователя} [27] |
% windir% [27] | Нет | % SystemDrive% \ WINDOWS | % SystemDrive% \ Windows [27] |
В этом списке нет переменной среды, которая ссылается на расположение пользовательского каталога « Мои документы» , поэтому не существует стандартного метода для установки домашнего каталога программы в качестве каталога « Мои документы» .
Переменные псевдо-среды [ править ]
DOS [ править ]
Помимо истинных переменных среды, которые статически хранятся в среде до тех пор, пока не будут изменены или удалены, существует ряд переменных псевдо-среды для пакетной обработки.
Так называемые параметры замены или заменяемые параметры (терминология Microsoft / IBM), также известные как переменные замены ( терминология Digital Research / Novell / Caldera) [21] или параметры пакетного файла (терминология JP Software) [10] %1
.. %9
и %0
могут использоваться для получения параметры вызова пакетного задания, см SHIFT
. В пакетных заданиях они могут быть получены так же, как переменные среды, но на самом деле они не сохраняются в среде.
Некоторые процессоры командной строки (например, DR-DOS COMMAND.COM
, [21] Multiuser DOS MDOS.COM
/ TMP.EXE
(Terminal Message Process), JP Software 4DOS , 4OS2 , 4NT , Take Command и Windows cmd.exe ) поддерживают тип переменных псевдосреды, называемых системной информацией. переменные (терминология Novell / Caldera) [21] или внутренние переменные (терминология JP Software), [10]который может использоваться для получения различной, возможно, динамической, но доступной только для чтения информации о работающей системе в пакетных заданиях. Возвращенные значения представляют состояние системы на момент запроса этих переменных; то есть чтение их несколько раз подряд может вернуть разные значения даже в пределах одной и той же команды; их запросы не имеют прямого воздействия на систему. Поскольку они не хранятся в среде, они не перечислены в SET и не существуют для извлечения внешними программами. Если определена истинная переменная среды с тем же именем, она имеет приоритет перед соответствующей переменной до тех пор, пока переменная среды не будет снова удалена. Они не чувствительны к регистру. Хотя почти все такие переменные имеют префикс подчеркивания ("_
") 4DOS и т. д. по соглашению (fe %_SECOND%
), [10] они не входят в DR-DOS COMMAND.COM
(fe %OS_VERSION%
).
Кроме того, 4DOS, 4OS2, 4NT и Take Command также поддерживают так называемые переменные функции , [10] , включая определяемые пользователем из них. Они работают так же, как внутренние переменные , но могут принимать необязательные параметры (например %@EVAL[]%
) и даже изменять состояние системы в зависимости от своей функции.
Переменные системной информации, поддерживаемые DR-DOS COMMAND.COM
:
%AM_PM%
- Эта псевдопеременная возвращает статус текущего времени до или после полудня. Возвращаемая строка зависит от языковой версии DR-DOS, например "
am
" или "pm
" в английской версии. Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare .
%DAY%
- Эта псевдопеременная возвращает дни текущей даты в 2-значном формате с ведущими нулями, например, "
01
" .. "31
". См. Также аналогичную псевдопеременную%_DAY%
. Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare .
%DAY_OF_WEEK%
- Эта псевдопеременная возвращает название дня недели в трехсимвольном формате. Возвращаемая строка зависит от языковой версии DR-DOS, например, "
Sun
", "Mon
", "Tue
", "Wed
", "Thu
", "Fri
" или "Sat
" в английской версии. Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare .
%ERRORLEVEL%
- В
COMMAND.COM
DR-DOS 7.02 и выше эта псевдопеременная возвращает последний уровень ошибки, возвращенный внешней программой илиRETURN
командой, например "0
" .. "255
". [28] [29] См. Также псевдопеременную с таким же именем%ERRORLEVEL%
в Windows иIF ERRORLEVEL
условную команду.
%ERRORLVL%
- В DR-DOS 7.02 и выше эта псевдопеременная возвращает последний уровень ошибки в 3-значном формате с ведущими нулями, например, "
000
" .. "255
". [28] [29] В многопользовательской DOS это настоящая переменная среды, которая автоматически обновляется оболочкой до кода возврата завершающихся программ. [23] См. Также соответствующую псевдопеременную%ERRORLEVEL%
в DR-DOS иIF ERRORLEVEL
команду.
%GREETING_TIME%
- Эта псевдопеременная возвращает трехуровневое дневное время приветствия. Возвращаемая строка зависит от языковой версии DR-DOS, например, "
morning
", "afternoon
" или "evening
" в английской версии. Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare .
%HOUR%
- Эта псевдопеременная возвращает часы текущего времени в 12-часовом формате без начальных нулей, например "
1
" .. "12
". Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare .
%HOUR24%
- Эта псевдопеременная возвращает часы текущего времени в 24-часовом формате в 2-значном формате с ведущими нулями, например, "
00
" .. "23
". Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare . См. Также аналогичную псевдопеременную%_HOUR%
.
%MINUTE%
- Эта псевдопеременная возвращает минуты текущего времени в 2-значном формате с ведущими нулями, например, "
00
" .. "59
". Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare . См. Также аналогичную псевдопеременную%_MINUTE%
.
%MONTH%
- Эта псевдопеременная возвращает месяцы текущей даты в 2-значном формате с ведущими нулями, например, "
01
" .. "12
". Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare . См. Также аналогичную псевдопеременную%_MONTH%
.
%MONTH_NAME%
- Эта псевдопеременная возвращает название месяца текущей даты. Возвращаемая строка зависит от версии DR-DOS, зависящей от локали, например, "
January
", "February
", "March
", "April
", "May
", "June
", "July
", "August
", "September
", "October
" или "December
" в английская версия. Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare .
%NDAY_OF_WEEK%
- Эта псевдопеременная возвращает номер дня текущей недели, например "
1
" .. "7
" (с "1
" для воскресенья). Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare .
%OS_VERSION%
- Эта псевдопеременная возвращает версию операционной системы в зависимости от текущего значения переменной среды
%VER%
. Если%VER%
не определено,%OS_VERSION%
возвращает "off
". Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare , которые могут возвращать версии также для версий DOS, не относящихся к DR-DOS.
%SECOND%
- Эта псевдопеременная возвращает секунды текущего времени в 2-значном формате с ведущими нулями, например, "
00
" .. "59
". Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare . См. Также аналогичную псевдопеременную%_SECOND%
.
%SHORT_YEAR%
- Эта псевдопеременная возвращает год текущей даты в 2-значном формате с ведущими нулями, например, "
93
" .. "99
", "00
" .. "92
". Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare .
%YEAR%
и%_YEAR%
- Псевдопеременная, поддерживаемая начиная с Novell DOS 7 ,
%YEAR%
возвращает год текущей даты в 4-значном формате, например "1980
" .. "2099
". Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare . DR-DOS 7.02 и выше добавлены%_YEAR%
для совместимости с 4DOS , возвращая то же значение. [10]
%/%
- В
COMMAND.COM
DR-DOS 7.02 и выше эта псевдопеременная возвращает текущую настройку SwitChar системы, либо "/
" (стиль DOS), либо "-
" (стиль Unix). [30] [31] См. Также соответствующуюCONFIG.SYS
директиву SWITCHAR и переменную окружения%SWITCHAR%
.
%_CODEPAGE%
- Эта псевдопеременная возвращает текущую кодовую страницу системы ("
1
" .. "65533
"), например, "437
", "850
", "858
". Эта переменная была первоначально введена в 4DOS , [10], но также стала доступна сCOMMAND.COM
DR-DOS 7.02. См. ТакжеCHCP
команду.
%_COLUMNS%
- Эта псевдопеременная возвращает текущее количество столбцов экрана в зависимости от режима отображения, например, "
40
", "80
", "132
" и т. Д. Эта переменная была первоначально введена 4DOS , [10], но также стала доступна сCOMMAND.COM
DR-DOS 7.02. . См. Также аналогичную переменную среды%$WIDTH%
в DOS Plus.
%_COUNTRY%
- Это псевдо-переменная возвращает текущий систем код страны ( «
1
„..“65534
„), фе“1
„для США“ ,44
„для Великобритании“ ,49
„в Германии,“20049
„с ISO 8601 ,“21049
» с ISO 8601 и Евро поддержки . Эта переменная была первоначально введена в 4DOS , [10], но также стала доступна сCOMMAND.COM
DR-DOS 7.02. См. ТакжеCONFIG.SYS
директивуCOUNTRY
.
%_DAY%
- Эта псевдопеременная возвращает дни текущей даты без начальных нулей, например "
1
" .. "31
". Эта переменная была первоначально введена в 4DOS , [10], но также стала доступна сCOMMAND.COM
DR-DOS 7.02. См. Также аналогичную псевдопеременную%DAY%
.
%_HOUR%
- Эта псевдопеременная возвращает часы текущего времени в 24-часовом формате без начальных нулей, например "
0
" .. "23
". Эта переменная была первоначально введена в 4DOS , [10], но также стала доступна сCOMMAND.COM
DR-DOS 7.02. См. Также аналогичную псевдопеременную%HOUR24%
.
%_MINUTE%
- Эта псевдопеременная возвращает минуты текущего времени без начальных нулей, например "
0
" .. "59
". Эта переменная была первоначально введена в 4DOS , [10], но также стала доступна сCOMMAND.COM
DR-DOS 7.02. См. Также аналогичную псевдопеременную%MINUTE%
.
%_MONTH%
- Эта псевдопеременная возвращает месяцы текущей даты без начальных нулей, например "
1
" .. "12
". Эта переменная была первоначально введена в 4DOS , [10], но также стала доступна сCOMMAND.COM
DR-DOS 7.02. См. Также аналогичную псевдопеременную%MONTH%
.
%_ROWS%
- Эта псевдопеременная возвращает текущее количество строк экрана в зависимости от режима отображения, например, "
25
", "43
", "50
" и т. Д. Эта переменная была первоначально введена в 4DOS , [10], но также стала доступна сCOMMAND.COM
DR-DOS 7.02. . См. Аналогичную переменную среды%$LENGTH%
в DOS Plus.
%_SECOND%
- Эта псевдопеременная возвращает секунды текущего времени без начальных нулей, например "
0
" .. "59
". Эта переменная была первоначально введена в 4DOS , [10], но также стала доступна сCOMMAND.COM
DR-DOS 7.02. См. Также аналогичную псевдопеременную%SECOND%
.
Переменные системной информации, поддерживаемые DR-DOS COMMAND.COM
с загруженной сетью:
%LOGIN_NAME%
- Эта псевдопеременная возвращает имя пользователя. Это всегда работал с
NETX
, но она также будет работать с Personal NetWare «s ODI / VLM , если текущий диск является PNW отображенный диск ( в противном случае возвращается пустая строка). См. Также переменную среды с таким же названием%LOGINNAME%
.
%P_STATION%
- Эта псевдопеременная возвращает номер физической станции в формате "
????????????
". Значение зависит от MAC-адреса сетевого адаптера, но может быть изменено. Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare .
%STATION%
- Эта псевдопеременная возвращает логический номер станции, начинающийся с "
1
" для первого клиента. Номера назначаются файловым сервером и остаются неизменными, пока установлено соединение IPX . Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare .
%FULL_NAME%
- Эта псевдопеременная возвращает полное имя вошедшего в систему пользователя, если доступно. Он напоминает переменную идентификатора с таким же именем в сценариях входа в систему Novell NetWare . См. Также соответствующую псевдопеременную
%LOGIN_NAME%
.
Windows [ править ]
Динамические переменные среды (также называемые внутренними переменными или переменными системной информации в DOS) являются переменными псевдо-среды, которые поддерживаются, CMD
когда включены расширения командной строки, и они расширяются до различных дискретных значений при каждом запросе, то есть их значения могут изменяться при запросе нескольких раз даже в рамках одной команды. Хотя их можно использовать в пакетных заданиях и по запросу, они не хранятся в среде. Следовательно, они не перечислены SET
и не существуют для чтения внешними программами. Они не чувствительны к регистру.
Косвенно они также поддерживаются в Windows COMMAND.COM
, которая была изменена для внутреннего вызова CMD.EXE
для выполнения команд.
%CD%
- Эта псевдопеременная расширяется до текущего каталога, эквивалентного выходным данным команды
CD
при вызове без аргументов. В то время как длинное имя файла может быть возвращено вCMD.EXE
зависимости от текущего каталога, тот факт, что текущий каталог всегда будет в формате 8.3 ,COMMAND.COM
приведет к тому, что он будет возвращать короткое имя файлаCOMMAND.COM
, даже приCOMMAND
внутреннем вызовеCMD
.
%CMDCMDLINE%
- Эта псевдопеременная расширяется до исходных параметров запуска
CMD.EXE
, например, "C:\Windows\system32\cmd.exe
". В WindowsCOMMAND.COM
это может возвращать что-то вроде "C:\Windows\system32\cmd.exe /c ...
" из-за того, чтоCOMMAND.COM
вызываетCMD.EXE
внутренний вызов.
%CMDEXTVERSION%
- Эта псевдопеременная расширяется до версии расширений командной строки
CMD.EXE
, если они включены (например, «1
« в Windows NT » ,«2
»в Windows 2000 и Windows XP ).
%DATE%
- Эта псевдопеременная расширяется до текущей даты. Дата отображается в соответствии с предпочтениями формата даты текущего пользователя .
%ERRORLEVEL%
- Эта псевдопеременная расширяется до последнего установленного уровня ошибки, значения между "
0
" и "255
" (без начальных нулей). [28] [32] [29] Внешние команды и некоторые внутренние команды устанавливают уровни ошибок при выполнении. См. Также псевдопеременную с таким же именем%ERRORLEVEL%
в DR-DOS иIF ERRORLEVEL
команду.
%RANDOM%
- Эта псевдо-переменная возвращает случайное число от "
0
" до "32767
".
%TIME%
- Эта псевдопеременная возвращает текущее время. Время отображается в соответствии с предпочтениями формата времени текущего пользователя. Если
%TIME%
и%DATE%
переменные оба используются, важно , чтобы прочитать их обоих в таком порядке в быстрой последовательности, чтобы избежать проблем с полуночи опрокидыванием.
См. Также [ править ]
- Переменная (информатика)
- Список команд Unix
- Список команд DOS
- Специальная папка
- Модули Среда
- PWB оболочка
Заметки [ править ]
- ^ a b К приложениям, которые неправильно обрабатывают переменные среды , длина которых превышает 128 символов, относятся CadStar PCB , Checkit, Computer Select CD-ROM, RenderMan, VINES Network , Windows 3.0 и Word для Windows 6.0 .
- ^ 4DOS и MS-DOS 7.0 устанавливают длину 127 и вставляют ASCII-13 в эту позицию, нобиблиотеки Borland устанавливают для длины недопустимое значение 128 и не вставляют ASCII-13. Для более коротких командных строк 4DOS / NDOS и DR-DOS также вставляют ASCII-0 после ASCII-13, но не при вызоведирективыvis INSTALL ; MS-DOS - нет.
Ссылки [ править ]
- ^ Роббинс, Арнольд; Биби, Нельсон Х.Ф. (май 2005 г.). Апанди, Татьяна; Рэндал, Эллисон; Витвер, Адам (ред.). Классический сценарий оболочки (1-е изд.). О'Рейли . ISBN 978-0-596-00595-5.
- ^ "unset - неустановленные значения и атрибуты переменных и функций -" . Справочник по командам и утилитам, Единая спецификация UNIX - Базовые спецификации открытой группы, IEEE Std 1003.1-2008 (издание 7-е изд.). IEEE и Open Группа . 2016 [2001]. Архивировано 18 декабря 2017 года . Проверено 18 декабря 2017 .
- ^ fgrose (2015-07-31) [2011]. "Неустановленная встроенная команда" . Bash Hackers Wiki . Архивировано 18 декабря 2017 года . Проверено 18 декабря 2017 .
- ^ Джейкобс, Майк; Корен, Александр; Сатран, Михаил (14 ноября 2017 г.). «Сохранение и получение настроек и других данных приложения» . Microsoft . Архивировано 18 декабря 2017 года . Проверено 18 декабря 2017 .
- ^ Рэймонд, Эрик (2002-08-02) [Первоначально опубликовано в 2001 году]. «Проект БРАУЗЕР» . Архивировано 21 сентября 2019 года . Проверено 21 октября 2020 .
- ^ «LWN - Развитие» . LWN.net . 2001-02-01. Архивировано 8 февраля 2019 года . Проверено 21 октября 2020 .
Стандартизация переменной среды BROWSER. Эрик Раймонд продвигает использование новой переменной среды BROWSER в дополнение к существующим переменным PAGER, MAILER и EDITOR. Это усилие проверяется как эксперимент по взлому социальных систем.
- ^ Špaček, Михал (2020-01-19) [первая версия опубликована 2013]. «Env :: Browser-0.06» . metacpan.org . Архивировано 21 октября 2020 года . Проверено 21 октября 2020 .
Env :: Browser - обработать переменную среды $ BROWSER и запустить веб-браузер.
- ^ "webbrowser - Удобный контроллер веб-браузера" . docs.python.org . Архивировано 13 октября 2020 года . Проверено 21 октября 2020 .
- ^ "DefaultWebBrowser - Debian Wiki" . wiki.debian.org . 2020-06-10. Архивировано 21 октября 2020 года . Проверено 21 октября 2020 .
Переменная среды BROWSER может быть установлена на […] всегда выбирайте желаемый браузер.
- ^ Б с д е е г ч я J к л м п о р а Q R сек т у V ш х у г аа аб Brothers, Hardin; Роусон, Том ; Конн, Рекс К .; Пол, Маттиас Р .; Краситель, Чарльз Э .; Георгиев, Лучезар И. (27.02.2002). Онлайн-справка по 4DOS 8.00 .
- ^ a b c d e f g h i j k l m n o p q r Пол, Матиас Р. (1997-07-30) [1994-05-01]. NWDOS-TIPs - Советы и приемы для Novell DOS 7, с подробным описанием, ошибками и обходными путями . MPDOSTIP . Выпуск 157 (на немецком языке) (3-е изд.). Архивировано 4 ноября 2016 года . Проверено 6 августа 2014 .(NB. NWDOSTIP.TXT - это комплексная работа по Novell DOS 7 и OpenDOS 7.01 , включая описание многих недокументированных функций и внутренних компонентов. Приведенная ссылка указывает на преобразованную в HTML версию файла, которая является частью
MPDOSTIP.ZIP
коллекции.) [1] - ^ a b c d e Пол, Маттиас Р. (01.05.1997) [01.03.1995]. «Рекомендации по JPSofts 4DOS 5.5b / c, 5.51, 5.52a и NDOS» . MPDOSTIP (на немецком языке). Архивировано 4 ноября 2016 года . Проверено 8 мая 2015 .(NB. Приведенная ссылка указывает на HTML-конвертированную версию
4DOS5TIP.TXT
файла, которая является частьюMPDOSTIP.ZIP
коллекции.) [2] - ^ a b Пол, Маттиас Р. (1997-10-02). "Caldera OpenDOS 7.01 / 7.02 Обновление Alpha 3 IBMBIO.COM README.TXT" . Архивировано из оригинала на 2003-10-04 . Проверено 29 марта 2009 . [3]
- ^ Пол, Маттиас Р. (1997-05-27) [1996]. «СЕТЕНВ v1.11» . Архивировано из оригинала на 2009-02-15 . Проверено 9 августа 2019 .
[…] SETENV […], чтобы скрыть и позже восстановить […] предварительную среду […] Используя SETENV.COM, вы можете сэкономить несколько килобайт редкой памяти DOS […] в зависимости от количества драйверов, загруженных с помощью
INSTALL =
/
INSTALLHIGH =
/
HIINSTALL =
и текущий размер предварительной среды. […] Эту оригинальную […] функцию нельзя найти ни в одном известном менеджере / оптимизаторе памяти. […]
- ^ Пол, Матиас Р. (2002-04-06). «Re: [fd-dev] ОБЪЯВЛЕНИЕ: CuteMouse 2.0 alpha 1» . freedos-dev . Архивировано 07 февраля 2020 года . Проверено 7 февраля 2020 .
[…] В подпрограмме CTMOUSE.ASM prepareTSR я нашел комментарий относительно нулевого окружения.
[…]
DESQview
или
DRDOS
zero-env?
[…] Освободить блок среды […] пропустить, если возникнут проблемы […] нулевая клавиатура для
утилит стиля
MEM
[…]
- ^ "Руководство пользователя PTS-DOS 2000 Pro" (PDF) . Архивировано (PDF) из оригинала на 2018-05-12 . Проверено 12 мая 2018 .
- ^ Пол, Маттиас Р. (2002-10-07). «Re: запустить COM-файл» . Группа новостей : alt.msdos.programmer . Архивировано 3 сентября 2017 года . Проверено 3 сентября 2017 . [4]
- ^ a b c d e f Datalight, Inc .; ГПвНО (апрель 2005 г.) [1999]. «Руководство пользователя Datalight ROM-DOS» (PDF) . Datalight, Inc. 3010-0200-0716. Архивировано (PDF) из оригинала 20.03.2019 . Проверено 16 сентября 2018 .
- ^ a b c d e f g h i Котулла, Мартин (ноябрь 1987 г.). "Фон CP / M zu MS-DOS, Teil 11" (PDF) . Профессиональные вычисления (ПК) - Schneider International (на немецком языке). 3 (11): 100–103. Архивировано (PDF) из оригинала 24.04.2019 . Проверено 20 мая 2018 .
- ^ a b c d e f g h i j k l m n Пол, Матиас Р. (26 марта 2002 г.). "Обновленный CLS размещен" . Список рассылки freedos-dev. Архивировано 4 октября 2018 года . Проверено 6 августа 2014 .
- ^ a b c d e f g h Руководство пользователя Caldera DR-DOS 7.02 . Caldera, Inc. 1998 [1993, 1997]. Архивировано из оригинала на 2016-11-04 . Проверено 10 августа 2013 .
- ^ a b c d Пол, Маттиас Р. (14 августа 2017 г.) [7 августа 2017 г.]. «Продолжение саги о Windows 3.1 в расширенном режиме на OmniBook 300» . MoHPC - Музей калькуляторов HP . Архивировано 01 мая 2018 года . Проверено 1 мая 2018 .
[…] Установите DRSYS = ON (необязательно, чтобы сообщить SYS, что вы знаете о том, что вы запускаете его в чужой среде и хотите продолжить работу в любом случае без необходимости индивидуально подтверждать некоторые предупреждения и дополнительные информационные экраны, отображаемые в этом сценарии в противном случае) […]
- ^ a b c d e f g h i CCI Multiuser DOS 7.22 GOLD Онлайн-документация . Concurrent Controls, Inc. (CCI). 1997-02-10. HELP.HLP.
- ^ Руководство по установке CCI Multiuser DOS 7.22 GOLD . Concurrent Controls, Inc. (CCI). 1997-02-10. PRINTDOC.HLP.
- ^ a b c Пол, Матиас Р. (20 февраля 2002 г.). "Как обнаружить FreeCOM / FreeDOS в пакетном режиме?" . Список рассылки freedos-dev. Архивировано 6 ноября 2018 года . Проверено 6 августа 2014 .
- ^ Бринк, Шон (2018-11-17). «Переменные среды в Windows 10 - Полный список переменных среды в Windows 10» . Форумы Windows Ten . Архивировано 27 марта 2019 года . Проверено 24 апреля 2019 .
- ^ Б с д е е г ч я J к л м п о р а Q R сек т у V ш х у г аа аЬ ас объявления аи аф ага ах аю а ^ ак Шульца, Хайо (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. Архивировано 9 июля 2016 года . Проверено 8 апреля 2019 .
- ^ a b c Пол, Маттиас Р. (01.05.1997) [01.10.1993]. BATTIPs - Советы и хитрости по программированию пакетных заданий . MPDOSTIP (на немецком языке). 7: УРОВЕНЬ ОШИБКИ abfragen. Архивировано 23 августа 2017 года . Проверено 23 августа 2017 . [5] [6] (NB. BATTIPS.TXT является частью MPDOSTIP.ZIP. Предоставленная ссылка указывает на более старую версию файла BATTIPS.TXT, преобразованную в HTML.) [7]
- ^ a b c Ауэр, Эрик; Пол, Маттиас Р .; Холл, Джим (2015-12-24) [2003-12-31]. «Уровни ошибок MS-DOS» . Архивировано из оригинала на 2015-12-24.
- ^ Пол, Матиас Р. (1998-01-09). DELTREE.BAT R1.01 Расширенное удаление файлов и каталогов . Кальдера, Inc. Архивировано из оригинала на 2019-04-08 . Проверено 8 апреля 2019 .
- ^ DR-DOS 7.03 WHATSNEW.TXT - Изменения с DR-DOS 7.02 на DR-DOS 7.03 . Caldera, Inc. 24 декабря 1998 г. Архивировано из оригинала на 2019-04-08 . Проверено 8 апреля 2019 .
- ^ Аллен, Уильям; Аллен, Линда. "УРОВНИ ОШИБОК Windows 95/98 / ME" . Архивировано из оригинала на 2011-07-07.
Дальнейшее чтение [ править ]
- Чен, Раймонд (2010-05-06). "Что это за странные = C: переменные среды?" . Новая старая вещь . Microsoft . Архивировано 27 мая 2018 года . Проверено 27 мая 2017 .
Внешние ссылки [ править ]
- : пользовательская среда - Руководство программиста Linux - Обзор, условные обозначения и разное
- - Руководство по разной информации FreeBSD
- - Руководство по разной информации Darwin и macOS
- - Справочное руководство по стандартам, средам и макросам Solaris 10
- Вики по переменным окружения
- Переменные пользовательской среды
- исправить ошибку setx.exe не найден