subst - Asignar una carpeta a una unidad
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
| Elemento | Descripción |
|---|---|
<unidad>: | La letra de unidad que se asigna (por ejemplo, X:) |
<ruta> | La carpeta local que se asigna como unidad virtual |
/d | Quita 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.
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 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
substproduceDrive already SUBSTed; la letra de una unidad física o de red produceInvalid 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, usenet 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
substdentro 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.
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).