2011-02-28 11 views
71

Necesito ayuda para escribir un archivo por lotes. que tienen una trayectoria almacenada en una raíz variable como sigue:Cómo cambiar el directorio de trabajo actual usando un archivo por lotes

set root=D:\Work\Root 

A continuación, voy a cambiar mi directorio de trabajo a esta raíz de la siguiente manera:

cd %root% 

Cuando ejecuta este archivo por lotes desde cualquier lugar de la D drive esto se hace con éxito. Pero cuando ejecuto el mismo archivo por lotes desde alguna otra unidad, cd% root% no funciona.

¿Hay alguna forma de obtener la letra de la unidad de la variable raíz? Luego puedo cambiar el directorio actual a esta unidad y luego cd% root% funcionará.

Respuesta

109

Especifique /D para cambiar también la unidad.

CD /D %root% 
+0

Otras respuestas dicen '\ d' (en minúsculas) ¿existe una diferencia entre ambos? ¿Es la opción simplemente insensible a mayúsculas y minúsculas? – josch

+2

@josch: Sí, si hablamos de los comandos internos de CMD, entonces, cambiar los parámetros como '/ D' de arriba no distingue entre mayúsculas y minúsculas ('/D' = '/ d'), al igual que los comandos mismos (' CD' = 'cd'). Creo que eso también es cierto para todas las utilidades externas de línea de comandos de Windows (como 'FINDSTR',' SORT', etc.) Las herramientas de terceros, por otro lado, pueden usar parámetros que distingan entre mayúsculas y minúsculas. –

33

Simplemente use cd /d %root% para cambiar las letras de los controladores y cambiar los directorios.

Como alternativa, utilice pushd %root% para cambiar las letras de unidad al cambiar directorios, así como para almacenar el directorio anterior en una pila para que pueda usar popd para volver.

Tenga en cuenta que pushd también le permitirá cambiar directorios a un recurso compartido de red. De hecho, asignará una unidad de red para usted y luego la desasignará cuando ejecute popd para ese directorio.

13

probar este

chdir /d D:\Work\Root 

Disfruta de enraizamiento;)

+4

Enraizamiento? ¿Qué significa eso en este contexto? –

+3

@MathiasLykkegaardLorenzen Volviendo a la raíz, como referencia a la pregunta, parece que se le escapó –

+0

Debe tenerse en cuenta que antes y después del directorio, "debe ponerse así: chdir/d" D: \ Work \ Root " –

Cuestiones relacionadas