Usando el comando cd en la línea de comandos de Windows, no puedo navegar a D: \

226

Esta puede ser una pregunta estúpida, y creo que he buscado en otro lado para encontrar la respuesta ... Podría ser un problema de ruta, pero cuando abro la línea de comando y escribo desde C:\>:

cd D:\

No puedo llegar al disco D. Incluso si escribo:

cd D:\<folder name>

El command.exese completará automáticamente en la línea con la tecla de tabulación, para que sepa dónde estoy. Simplemente no se imprime para mostrar el resultado o realmente me lleva allí. Este problema también existe para las unidades de red.

Ahora, si uso el comando chdir( cd) así:

chdir D: o cd d:

Me sale la impresión del D:\siguiente comando, pero todavía dice que estoy en el C:\.

Siento que me falta algo simple.

nicorellius
fuente
Lo he estado usando pushden lugar de cdprácticamente en todas partes, ya que se comporta mucho mejor en situaciones como esta.
Goyuix
55
Ver esta respuesta " cd / d D: " superuser.com/a/135239/78897
Pacerier
1
Pruebe esto: cd / dd:
DevWL

Respuestas:

324

Volviendo a los días de DOS, hay un "directorio actual" separado para cada unidad. cd D:\foldernamecambia el directorio actual de D: al nombre de carpeta especificado, pero no cambia el hecho de que todavía está trabajando en la C:unidad.

Lo que quieres es simple:

D:

Aquí puede ver cómo funciona el "directorio actual separado para cada unidad":

C:\Users\coneslayer>e:

E:\>c:

C:\Users\coneslayer>cd e:\software

C:\Users\coneslayer>e:

e:\Software>
asesino
fuente
16
En una situación de "arma más rápida en el oeste", el ganador es el que da la mejor explicación. +1, y elimino mi respuesta similar.
Gnoupi
2
La mía eliminada también. No es necesario el desorden adicional.
th3dude
3
-1 a) no has señalado que la cd e:\softwarelínea no hizo nada. Como si pusieras un comando de CD fantasma ahí ¿Por qué? ¿Para hacerle pensar que estabas usando CD cuando no? y b) ¿cómo puede no mencionar la /dhabilitación de CD en un directorio particular en una unidad diferente? Dijo que usa el comando cd, así que si bien es bueno que usted haya señalado cómo se puede hacer sin el comando CD d:<ENTER>, debería haber mencionado el comando de CD también cd /d d:ocd /d d:\blah
barlop
3
@barlop El cd E:\softwareNO hace nada. Cambia el directorio actual de la partición E a la softwarecarpeta, que es lo que se demuestra cuando finalmente se cambia a la partición E con E:. Buena sugerencia con cd / d sin embargo.
miyalys
@miyalys punto interesante y genial
barlop
78

Se hizo el trabajo, ya que el comando está diseñado para trabajar.

Simplemente no sabes cómo se supone que funciona.

No estás utilizando un programa de shell Unix o Linux. El cdcomando en el intérprete de comandos de Microsoft no se comporta como lo hacen los cdcomandos en tales shells. Se comporta de manera algo diferente. En particular, no siempre cambia el directorio . En shells de Unix y Linux, cdsolo establece el directorio de trabajo. En el intérprete de comandos de Microsoft, a cdveces lo consulta. No hay un pwdcomando separado , también lo cdhacen dos trabajos.

Si no le da argumentos, o un argumento que es solo una letra de unidad y dos puntos sin una ruta, informa el directorio actual en lugar de cambiarlo . Si no le da argumentos, informa el directorio actual de la unidad actual del proceso del intérprete de comandos. Si solo le da una letra de unidad y dos puntos como argumento, informa el directorio actual del proceso del intérprete de comandos de esa unidad. Cada unidad tiene su propio directorio actual en el intérprete de comandos. (Esta es una ficción mantenida por las bibliotecas en tiempo de ejecución para las implementaciones de Microsoft y varios otros proveedores de varios lenguajes de programación. Win32 en sí mismo no funciona de esta manera).

Entonces, cuando lo diste d:como argumento, te informó el directorio actual del proceso del intérprete de comandos en la unidad D, que resultó ser D:\. Si no le hubiera dado ningún argumento, se lo habría informado C:\.

Si desea que el cdcomando esté siempre en modo establecido y nunca en modo de consulta, debe agregarle la /Dopción. Esto obliga al comando a estar siempre en modo establecido, y también lo extiende para que cambie la unidad actual y cambie el directorio actual de la unidad. (En otras palabras, funciona más como lo hace realmente la API Win32 subyacente).

Entonces, por ejemplo, la línea de comando

cd / dd:
cambiará el directorio a cualquiera que sea el directorio actual en la unidad D, y también cambiará la unidad actual a la unidad D.

Si desea cambiar la unidad actual del proceso del intérprete de comandos, el cdcomando no es el camino. Lo haces simplemente escribiendo la letra de la unidad y dos puntos:

re:

Otras lecturas

  • JP Software (2011). Ayuda en línea de CD / CHDIR TCC.
  • Corporación Microsoft (2001). Chdir (CD) . Referencia de línea de comandos de TechNet Windows XP A – Z.
JdeBP
fuente
3
No del todo bien. Si lo hace cd d:\ , cambia el directorio de trabajo d:. Si lo haces d:\ después, será a las d:\ . Si no haces cd d:\something\somethingnada sucederá al principio. Pero si lo haces d:\ después otra vez, ¡tu camino será d:\something\something"!
sinni800
44
Nada de lo cual contradice lo que está escrito anteriormente de ninguna manera sinni800(aparte de que obtienes la sintaxis para cambiar el disco actual incorrectamente, eso es, pero lo pasaré por alto). No incluí la discusión de lo que sucede cuando uno proporciona un nombre de ruta en un argumento porque (a) de eso no se trata la pregunta y (b) está en la lectura adicional.
JdeBP
66
No, no lo estamos. Sería un error hablar de particiones en lugar de unidades aquí user unknown. Para empezar, las particiones no son lo mismo que los volúmenes, y las letras de unidad se asignan a volúmenes, no a particiones. Y cuando se habla a este nivel de abstracción, la letra de unidad y la unidad actual son los términos convencionales, como se usan aquí, en la lectura adicional indicada, e incluso en el cd /?texto de ayuda.
JdeBP
2
He usado este comando durante al menos 20 años y nunca lo supe.
Chris Ballance
54

Me temo que esto es incorrecto. Es cierto desde los días de DOS, pero la línea de comandos en Windows NT y posterior no es DOS. En la línea de comando que todos usan hoy, tiene el modificador / D. El modificador / d cambiará el directorio actual de la unidad especificada Y cambiará a ese directorio. El modificador / d debe especificarse antes de la ruta. Por ejemplo:

C:\> cd /d D:\foo\bar\
D:\foo\bar\>

símbolo del sistema de Windows cd

Multiverse IT
fuente
44
+1 porque aprendí algo nuevo, pero no creo que nada de lo que escribí sea incorrecto.
coneslayer
3
Su respuesta también es correcta, Multiverse IT, pero coneslayer no fue incorrecto. Gracias por tus esfuerzos. Aprendí dos grandes trucos sobre esta pregunta.
nicorellius
2
Desde mi perspectiva "Lo que quieres es simple ... D:" es incorrecto. Sí, funciona y es un método válido para lograr el objetivo, pero no lo es, estrictamente hablando, lo que debe desear. Además, la forma en que está redactado el comentario implica que no puede usar el CD para hacer esto; esa implicación es incorrecta.
Multiverse IT
1
su problema principal es "No puedo acceder al disco D". Como tal, la otra respuesta es correcta. Su solución toma simplemente un paso menos (lo cual es bueno). No hace que el otro sea incorrecto.
Gnoupi
1
Hmm, "lo que debería querer". Suena bastante presuntivo ;-)
nicorellius
20

CD significa C ambiar D irectorio, y no cambiar Drive. Por lo tanto, no cambiaría a D: así. Para lograr esto, simplemente tendría que escribir la letra de la unidad

p.ej

re:

I Desconocido
fuente
16
cd / DD: cambia unidades y directorios ...
Michael S.
Pero d: es una partición, no una unidad.
usuario desconocido
1
@userunknown En la era Dos 1.0, cuando se diseñó el shell, solo había disquetes que AFAIK no se pueden particionar. El soporte inicial del disco duro fue solo para la partición primaria (primera) en una unidad. El soporte de partición extendido no se agregó hasta más tarde.
Dan Neely
No veo una etiqueta de MS-DOS 1.0, ni 1.0 mencionado. Tal vez no pueda particionar una unidad con programas MS-DOS, pero puede instalar un MS-DOS en una unidad particionada. Sin embargo, supongo que MS-DOS no está soportado, y la etiqueta está ahí, porque muchos usuarios creen que cmd.exe y MS-DOS significan lo mismo, lo cual es otro error de dirección. A propósito: MS-DOS 1.0 nunca fue publicado.
Usuario desconocido el
1
@userunknown Las decisiones de diseño se remontan a las versiones iniciales de DOS. Cambiar el comportamiento habría roto los programas más antiguos (ver el comentario de Daniel Beck a continuación). PD; según Wikipedia MS DOS 1.x fue publicado.
Dan Neely
9

El directorio de trabajo en cmd.exe se mantiene sobre una volume-by-volumebase; El directorio de trabajo de la C:unidad es diferente del directorio de trabajo de la D:unidad.

Cuando pasa solo una letra de unidad cd, imprimirá el directorio de trabajo para la unidad especificada.

En su caso, el directorio de trabajo de la D:unidad es la raíz del volumen en sí, D:\.

Para cambiar los volúmenes de C:que D:sólo tiene que introducir la letra de unidad:

C:\>D:
D:\>
Andrew Lambert
fuente
2
cd / DD: cambia unidades y directorios ...
Michael S.
1
Las particiones se asignan a una letra de unidad y son prácticamente lo mismo que una unidad. También puede asignar un directorio o compartir a una unidad, y se comportan igual.
Marty Fried el
8

Use cd / DD: para hacer esto. Puede especificar rutas también.

Michael S.
fuente
5

Si desea cambiar la unidad en un símbolo del sistema de DOS, simplemente tiene que escribir:

[Drive Letter]:

Por ejemplo, si desea pasar a la unidad D: \, solo tiene que escribir lo siguiente en el símbolo del sistema:

D:
Darsak
fuente
Cambias la partición con [Drive Letter]:, créeme o pruébalo.
Usuario desconocido el
Oh wow, eso hace las cosas mucho más fáciles. Siempre me olvido de /dlo que hace que el cambio sea mucho más rápido.
Mateen Ulhaq
2

pushdfunciona incluso cuando necesita ir al subdirectorio de la unidad, por ejemplo D:\Tests\Logs.

Solo úsalo así:

pushd D:\Tests\Logs

Si desea volver al directorio anterior, use popd:

C:\Users>pushd D:\Tests\Logs
D:\Tests\Logs>popd
C:\Users>
BladeMight
fuente
0

Mientras va a buscar la opción en la barra de herramientas y busca cmd o seleccionando windows Todas las aplicaciones seleccionan el símbolo del sistema y luego lo lleva a algún otro símbolo del sistema. En su lugar, intente presionar el botón de Windows + R y busque el cmd que lleva a la unidad C:>. Desde allí, puede navegar a D:> o en cualquier lugar que necesite

usuario609712
fuente