Necesito ayuda para escribir un archivo por lotes. Tengo una ruta almacenada en una raíz variable de la siguiente manera:
set root=D:\Work\Root
Luego estoy cambiando mi directorio de trabajo a esta raíz de la siguiente manera:
cd %root%
Cuando ejecuto este archivo por lotes desde cualquier lugar de la unidad D, esto se hace correctamente. Pero cuando ejecuto el mismo archivo por lotes desde otra unidad, cd% root% no funciona.
¿Hay alguna forma de obtener la letra de la unidad de la variable raíz? Entonces puedo cambiar el directorio actual a esta unidad primero y luego cd% root% funcionará.
batch-file
directory
command-prompt
drive
Ananya
fuente
fuente
\d
(en minúsculas) ¿hay alguna diferencia entre ambos? ¿La opción no distingue entre mayúsculas y minúsculas?/D
anteriores no distinguen entre mayúsculas y minúsculas (/D
=/d
), al igual que los propios comandos (CD
=cd
). Creo que eso también es cierto para todas las utilidades de línea de comandos externas de Windows (comoFINDSTR
,SORT
etc.) Las herramientas de terceros, por otro lado, pueden usar parámetros que distinguen entre mayúsculas y minúsculas.set "root=/d D:\Work\Root"
ycd %root%
ni siquieraset "root=cd /d D:\Work\Root"
y justo%root%
Solo use
cd /d %root%
para cambiar las letras del controlador y cambiar de directorio.Alternativamente, use
pushd %root%
para cambiar las letras de la unidad al cambiar de directorio, así como para almacenar el directorio anterior en una pila para que pueda usarlopopd
para regresar.Tenga en cuenta que
pushd
también le permitirá cambiar directorios a un recurso compartido de red. En realidad, asignará una unidad de red para usted y luego la desasignará cuando ejecute elpopd
para ese directorio.fuente
Prueba esto
Disfruta del enraizamiento;)
fuente
Una sintaxis más simple podría ser
pushd% root%
fuente