subst - Asignar una carpeta a una unidad

Mantenido el
Tabla de contenidos

El comando subst asigna una carpeta a una letra de unidad y crea así una unidad virtual.

Por ejemplo, puede tratar C:\Projects\MyApp\src como la unidad X: y llegar a una carpeta muy anidada con una ruta corta.

Sintaxis básica del comando subst

subst [<unidad>: <ruta>]
subst <unidad>: /d
ElementoDescripción
<unidad>:La letra de unidad que se asigna (por ejemplo, X:)
<ruta>La carpeta local que se asigna como unidad virtual
/dQuita la asignación

Si lo ejecuta sin argumentos, muestra las asignaciones actuales.

Uso básico

Asignar una carpeta a una unidad

subst X: C:\Projects\MyApp\src

Si todo va bien, no se muestra ningún mensaje. Después, basta con cambiar a X: para trabajar con el contenido de la carpeta.

X:
dir

Comprobar las asignaciones

Ejecute subst sin argumentos.

- □ ×
Ícono de la consola de comandos
Consola de comandos
Microsoft Windows [Version xx.x.xxxxx.xxx]
(c) 2026 Ribbit App Development All rights reserved.
 
C:\users\user>subst
X:: => C:\Projects\MyApp\src
C:\users\user>

Quitar una asignación

subst X: /d

Solo se quita la asignación. La carpeta original y sus archivos no se eliminan.

Cuándo usarlo

  • Cuando las rutas son demasiado largas para escribirlas cómodamente, o cuando una herramienta falla con rutas largas
  • Cuando ejecuta aplicaciones o scripts antiguos que tienen fija una letra de unidad
  • Cuando quiere abrir una carpeta de trabajo con una ruta corta

Notas

Las asignaciones desaparecen al reiniciar o cerrar sesión

Las asignaciones de subst no son permanentes. Se eliminan al cerrar sesión o reiniciar. Si las necesita siempre, coloque un archivo por lotes con el comando subst en la carpeta de inicio (shell:startup) o regístrelo como una tarea del Programador de tareas que se ejecute al iniciar sesión solo cuando el usuario ha iniciado sesión (una tarea que se ejecuta con o sin sesión iniciada usa otra sesión, por lo que no verá la unidad).

  • No se puede usar una letra de unidad que ya esté en uso. Una letra ya asignada con subst produce Drive already SUBSTed; la letra de una unidad física o de red produce Invalid parameter. La carpeta de destino también debe existir.
  • El destino debe ser una carpeta local. No se aceptan rutas UNC como \\server\share. Para asignar un recurso compartido de red, use net use.
  • Las asignaciones se gestionan por sesión de usuario. Un Símbolo del sistema elevado y uno normal usan listas de letras de unidad distintas, por lo que pueden no ver las asignaciones del otro. Si una herramienta que requiere derechos de administrador necesita la unidad, ejecute subst dentro de ese Símbolo del sistema.
  • Antes de quitar una asignación, es más seguro cerrar las ventanas o aplicaciones que tengan abierta la unidad virtual.
Elegir entre mklink, net use y subst

Use mklink para que una carpeta aparezca dentro de otra, net use para dar una letra de unidad a un recurso compartido de red y subst para dar una letra de unidad corta a una carpeta local.

Ejemplo en un archivo por lotes

Este ejemplo quita primero cualquier asignación existente para que no falle si la unidad ya está asignada.

@echo off
subst X: /d >nul 2>&1
subst X: C:\Projects\MyApp\src

Si la letra no está en uso, /d produce un error, pero >nul 2>&1 descarta la salida, así que no causa problemas. Sin embargo, si X: es una unidad real, tanto /d como subst fallan (y el error de subst se muestra).

Artículos relacionados

Preguntas de práctica

Problema de práctica

¿Qué comando quita la carpeta asignada a X: como unidad virtual?

Elige una respuesta.

  1. subst X: /r
  2. subst X: /d
  3. del X:

Problema de práctica

¿Qué afirmación sobre una unidad virtual creada con subst es correcta?

Elige una respuesta.

  1. La asignación se conserva después de reiniciar
  2. La asignación se elimina al reiniciar o cerrar sesión
  3. Se puede especificar directamente un recurso compartido de red (ruta UNC)
#Símbolo del sistema #Archivos por lotes #subst #Línea de comandos #Comando