В вычислительной технике — SUBST
команда в операционных системах DOS , IBM OS/2 , [1] Microsoft Windows и ReactOS [2], используемая для замены путей на физических и логических дисках на виртуальные диски .
В MS-DOS команда SUBST
была добавлена с выпуском MS-DOS 3.1. [3] Команда похожа на плавающие диски , более общую концепцию в операционных системах происхождения Digital Research , включая CP/M-86 2.x, Personal CP/M-86 2.x, Concurrent DOS , Multiuser DOS , System Manager 7, REAL/32 , а также DOS Plus и DR DOS (до 6.0). DR DOS 6.0 включает реализацию команды SUBST
. [4] Команда также доступна в FreeDOS [5] и PTS-DOS . [6] Команда Windows SUBST
доступна в поддерживаемых версиях интерпретатора командной строки cmd.exe . [7] В Windows NT используется SUBST
для DefineDosDevice()
создания отображений дисков.
Эта JOIN
команда является «противоположностью» SUBST
, поскольку JOIN
берет букву диска и отображает ее как каталог.
Некоторые версии MS-DOS COMMAND.COM
поддерживают недокументированную внутреннюю TRUENAME
команду, которая может отображать «истинное имя» файла, т. е. полное имя с указанием диска, пути и расширения, которое можно найти по имени только через переменную среды PATH или через сопоставления SUBST
, JOIN
и ASSIGN
файловой системы.
Ниже приведен синтаксис команды в Windows XP для связывания пути с буквой диска:
SUBST [диск1: [диск2:]путь]SUBST диск1: /D
drive1:
– Укажите виртуальный диск, которому следует назначить путь.[drive2:]path
– Укажите физический диск и путь для назначения виртуальному диску./D
– Удалить замещенный (виртуальный) диск.Это означает, что, например, для сопоставления корня C: с X: в интерфейсе командной строки будет использоваться следующая команда :
C:\> ПОДСТАВКА X: C:\
После этого в виртуальной папке «Мой компьютер» в проводнике Windows появится новый диск с именем X:.
Чтобы снова отменить сопоставление диска X, необходимо ввести в командной строке следующую команду:
C:\> ПОДСТАВКА X: /D
Пользовательскую метку [ нужна ссылка ] можно назначить букве диска, созданной таким образом, с помощью ключа реестра, который можно создать путем переименования (выберите «переименовать» в контекстном меню буквы диска или нажмите F2) диска SUBST в проводнике Windows/моем компьютере.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\M\DefaultLabel\
(DefaultValue) = Your Drive Label
«M» представляет собой букву диска, которому следует назначить пользовательскую метку.
Однако метки, созданные для дисков SUBST таким образом, переопределяются меткой хост-диска/раздела: пользовательские метки используются только в том случае, если хост-диск не имеет метки. Тогда можно:
Обратите внимание, что команда LABEL НЕ может изменить имя метки буквы диска, созданной с помощью subst. [8] LABEL — одна из нескольких команд, которые работают только на физических дисках. [9]
Буквы дисков, сопоставленные с помощью команды, недоступны службам во время запуска системы и не сохраняются после перезагрузки.
Механизм DOS Devices, лежащий в основе subst, можно настроить в реестре. Таким образом, сопоставленные диски можно использовать сразу во время запуска.
Создайте новую запись реестра «Строковый параметр» в следующем ключе:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices
Имя должно быть " X:
", где X — буква диска.
Значением должен быть путь в одной из следующих форм диспетчера объектов NT :
\??\C:\some\directory
(предпочтительно)\DosDevices\C:\some\directory
(длинная версия предыдущей)\Device\Mup\127.0.0.1\C$\some\directory
(не рекомендуется, так как это касается доли малого и среднего бизнеса)Пользователю доступны инструменты для внесения необходимых изменений, в том числе psubst
.
Относительно этого тематического ключа реестра — HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
. Он определяет сопоставление букв дисков с определенными разделами жесткого диска, аналогично /etc/fstab в системе Unix . Его также можно редактировать вручную, но только в то время, пока эта конкретная установленная операционная система Windows «неактивна». Так что, например, если вы в данный момент загружаетесь с « D:\Windows
», то вы можете редактировать HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
ключ Windows, установленной в C:\Windows
папке « », например, выполнив следующие действия:
reg load hklm\$system C:\WINDOWS\system32\config\system
regedit.exe
HKEY_LOCAL_MACHINE\$system\MountedDevices
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
раздел реестра экземпляра Windows, установленного в C:\WINDOWS
)regedit.exe
reg unload hklm\$system
(для завершения процедуры редактирования)Самый простой способ сделать это — создать файл реестра (.reg) и дважды щелкнуть по нему, чтобы импортировать настройки в реестр.
Вот пример файла реестра.
REGEDIT4[ HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices] "F:" = "\\??\\D:\\Mount\\db" "G:" = "\\??\\D:\\Mount\\log"
После настройки реестра необходимо перезагрузить компьютер, чтобы изменения вступили в силу.
Создайте пакетный файл для запуска встроенной SUBST
команды по созданию буквы виртуального диска для существующих точек монтирования и поместите ее в папку автозагрузки учетных записей пользователей.
Это нежелательно, поскольку сопоставление появляется только в конце входа пользователя в систему.
Вот пример:
@ ЭХО выкл.ПОДСТАВКА f: d:\mount\dbSUBST g: d:\mount\log
Чтобы изменения вступили в силу, пользователю необходимо выйти из системы и войти снова, либо перезапустить службу.
Отредактируйте реестр, чтобы запустить встроенную команду subst во время запуска компьютера или входа пользователя в систему, используя соответствующий раздел реестра Run. Самый простой способ сделать это — создать файл реестра (.reg) и дважды щелкнуть файл, чтобы импортировать настройки в реестр.
Это нежелательно, поскольку сопоставление появляется только в конце загрузки.
Пример для запуска во время загрузки компьютера
REGEDIT4[ HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Windows\CurrentVersion\Run] "Диск F" = "SUBST f: d:\\mount\\db" "Диск G" = "SUBST g: d:\\mount\\log"
Чтобы изменения вступили в силу, необходимо перезагрузить компьютер.
Пример входа пользователя
REGEDIT4[ HKEY_CURRENT_USER \SOFTWARE\Microsoft\Windows\CurrentVersion\Run] "Диск F" = "SUBST f: d:\\mount\\db" "Диск G" = "SUBST g: d:\\mount\\log"
Чтобы изменения вступили в силу, пользователю необходимо выйти из системы и войти снова.
autorun.inf
файлы Microsoft Windows XP SP2, присутствующие в новой букве диска, игнорируются; таким образом, AutoRun / AutoPlay не работает на буквах дисков, созданных таким образом. Кроме того, назначение пользовательского значка или метки для буквы диска, созданной таким образом, через autorun.inf
не работает. Пользовательская метка, назначенная для созданной с помощью буквы диска, subst
появляется только в том случае, если исходный диск/том не имеет установленной метки тома (проверьте и установите с помощью label
команды).