En informática , SUBST
es un comando en los sistemas operativos DOS , IBM OS/2 , [1] Microsoft Windows y ReactOS [2] utilizado para sustituir rutas en unidades físicas y lógicas como unidades virtuales .
En MS-DOS , el SUBST
comando se agregó con el lanzamiento de MS-DOS 3.1. [3] El comando es similar a las unidades flotantes , un concepto más general en los sistemas operativos de origen Digital Research , incluidos CP/M-86 2.x, Personal CP/M-86 2.x, Concurrent DOS , Multiuser DOS , System Manager 7, REAL/32 , así como DOS Plus y DR DOS (hasta 6.0). DR DOS 6.0 incluye una implementación del SUBST
comando. [4] El comando también está disponible en FreeDOS [5] y PTS-DOS . [6] El comando de Windows SUBST
está disponible en versiones compatibles del intérprete de línea de comandos cmd.exe . [7] En Windows NT , SUBST
se utiliza DefineDosDevice()
para crear las asignaciones de disco.
El JOIN
comando es el "opuesto" de SUBST
, porque JOIN
tomará una letra de unidad y la hará aparecer como un directorio.
Algunas versiones de MS-DOS COMMAND.COM
admiten el comando interno no documentado TRUENAME
que puede mostrar el "nombre verdadero" de un archivo, es decir, el nombre completo con unidad, ruta y extensión, que se encuentra posiblemente solo por nombre a través de la variable de entorno PATHSUBST
o JOIN
mediante ASSIGN
asignaciones de sistemas de archivos.
Esta es la sintaxis del comando en Windows XP para asociar una ruta con una letra de unidad:
SUBST [unidad1: [unidad2:]ruta]Unidad SUBST1: /D
drive1:
– Especifique una unidad virtual a la que asignar una ruta.[drive2:]path
– Especifique una unidad física y una ruta para asignar a una unidad virtual./D
– Eliminar una unidad sustituida (virtual).Esto significa que, por ejemplo, para mapear la raíz de C: a X:, se usaría el siguiente comando en la interfaz de línea de comandos :
C:\> SUST. X: C:\
Al hacer esto, aparecerá una nueva unidad llamada X: debajo de la carpeta virtual Mi PC en el Explorador de Windows .
Para desasignar la unidad X: nuevamente, se debe escribir el siguiente comando en el símbolo del sistema:
C:\> SUST. X: /D
Se puede [ cita requerida ] asignar una etiqueta personalizada a una letra de unidad creada de esta manera por medio de una clave de registro, que se puede crear renombrando (seleccione "renombrar" en el menú contextual de la letra de unidad o presione F2) la unidad SUBST en el Explorador de Windows/Mi PC.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\DriveIcons\M\DefaultLabel\
(DefaultValue) = Your Drive Label
"M" representa la letra de unidad a la que se asignará una etiqueta personalizada.
Sin embargo, las etiquetas creadas para las unidades SUBST de esta manera se reemplazan por la etiqueta de la partición o unidad host: las etiquetas personalizadas solo se utilizan si la unidad host no tiene etiqueta. Entonces, se puede:
Tenga en cuenta que el comando LABEL NO puede cambiar el nombre de etiqueta de una letra de unidad creada con subst. [8] LABEL es uno de varios comandos que solo funcionan en unidades físicas. [9]
Las letras de unidad asignadas con el comando no están disponibles durante el inicio del sistema para los servicios ni persisten después de un reinicio.
El mecanismo de dispositivos DOS que subyace a subst se puede configurar en el registro. De esta manera, las unidades asignadas se pueden usar inmediatamente durante el inicio.
Cree una nueva entrada de registro "Valor de cadena" en la siguiente clave:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices
El nombre debe ser " X:
" donde X es la letra de la unidad.
El valor debe ser la ruta en uno de los siguientes formatos del Administrador de objetos NT :
\??\C:\some\directory
(privilegiado)\DosDevices\C:\some\directory
(versión larga del anterior)\Device\Mup\127.0.0.1\C$\some\directory
(no se recomienda, ya que esto pasa por el recurso compartido de SMB)Hay herramientas disponibles para realizar los cambios necesarios para el usuario, incluyendo psubst
.
El relativo a esta clave temática del registro es HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
. Define la asignación de letras de unidad a particiones de disco duro específicas, similar a /etc/fstab en un sistema Unix . También se puede editar manualmente, pero solo en el momento en que el sistema operativo Windows instalado en particular esté "inactivo". De modo que, por ejemplo, si actualmente arranca desde " D:\Windows
", puede editar la HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
clave de Windows que está instalada en una C:\Windows
carpeta " ", por ejemplo, realizando las siguientes acciones:
reg load hklm\$system C:\WINDOWS\system32\config\system
regedit.exe
HKEY_LOCAL_MACHINE\$system\MountedDevices
HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices
clave de registro de la instancia de Windows que está instalada en C:\WINDOWS
)regedit.exe
reg unload hklm\$system
(para completar el procedimiento de edición)La forma más sencilla de hacerlo es crear un archivo de registro (.reg) y hacer doble clic en el archivo para importar la configuración al registro.
A continuación se muestra un ejemplo de archivo de registro.
REGEDIT4[ HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Control\Session Manager\DOS Devices] "F:" = "\\??\\D:\\Montar\\db" "G:" = "\\??\\D:\\Montar\\log"
Después de configurar el registro, es necesario reiniciar el equipo para que los cambios surtan efecto.
Cree un archivo por lotes para ejecutar el comando integrado SUBST
para crear una letra de unidad virtual para los puntos de montaje existentes y colocarla en la carpeta de inicio de las cuentas de usuario.
Esto no es preferible, ya que la asignación solo aparece al final del inicio de sesión del usuario.
He aquí un ejemplo:
@ ECHO apagadoSUBST f: d:\monte\dbSUBST g: d:\montaje\registro
El usuario debe cerrar la sesión y volver a iniciarla o debe reiniciar el servicio para que los cambios surtan efecto.
Edite el registro para ejecutar el comando subst integrado durante el inicio de la computadora o el inicio de sesión del usuario aprovechando la clave de registro Ejecutar adecuada. La forma más fácil de hacerlo es crear un archivo de registro (.reg) y hacer doble clic en el archivo para importar la configuración al registro.
Esto no es recomendable, ya que la asignación solo aparece al final del arranque.
Ejemplo para ejecutar durante el arranque del ordenador
REGEDIT4[ HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Windows\CurrentVersion\Run] "Unidad F" = "SUBST f: d:\\mount\\db" "Unidad G" = "SUBST g: d:\\mount\\log"
Es necesario reiniciar la computadora para que los cambios surtan efecto.
Ejemplo de inicio de sesión de usuario
REGEDIT4[ HKEY_CURRENT_USER \SOFTWARE\Microsoft\Windows\CurrentVersion\Run] "Unidad F" = "SUBST f: d:\\mount\\db" "Unidad G" = "SUBST g: d:\\mount\\log"
El usuario debe cerrar sesión y volver a iniciarla para que los cambios surtan efecto.
autorun.inf
presentes en la nueva letra de unidad se ignoran, la ejecución automática o la reproducción automática no funcionan en letras de unidad creadas de esta manera. Además, autorun.inf
no funciona asignar un icono o una etiqueta personalizados a la letra de unidad creada de esta manera. Una etiqueta personalizada asignada a la letra de unidad creada con subst
solo aparece si la unidad o el volumen de origen no tienen una etiqueta de volumen configurada (verifique y configure con el label
comando).