¿Por qué "cd D:" no cambia el contexto del comando a D:?

¿Por qué "cd D:" no cambia el contexto del comando a D:?

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

Cada vez que quiero cambiar el contexto del directorio a otra unidad (D, E, F o lo que sea...) en un símbolo del sistema de Windows, debo usar "Drive letter":\el comando para cambiarlo. si lo intento con"comando cd"en cd H:\él simplemente haga eco de H:\ para mí y no haga nada:

Ingrese la descripción de la imagen aquí

¿Existe alguna razón para tal comportamiento? Quiero decir, ¿no debería cd commandfuncionar hacer esto? ¿Por qué no?

Respuesta1

Intentar:

cd /d d:

/dtambién cambiará las letras de unidad y los directorios; para obtener más información, consultecd /?

Respuesta2

La razón por la que Windows se comporta de esta manera es porque DOS se comporta de esa manera.

En DOS, cada unidad tiene su propio directorio actual y el cdcomando cambia el directorio actual en una unidad. Si ese también resulta ser el actualconducir, entonces su directorio de trabajo cambia junto con él. Si desea cambiar la unidad actual, simplemente especifique la letra de la unidad como un comando.

Observa que Windows en realidad notrabajarde esta manera (solo tiene un directorio actual en cualquier momento), pero el shell de comandos hace todo lo posible para pretender que todavía hay directorios actuales por unidad. Presumiblemente, esto es para preservar la compatibilidad con los archivos por lotes de DOS existentes.

La razón por la que DOS funciona de esta manera se remonta a las primeras versiones de DOS, y CP/M antes. Los detalles sangrientos se pueden encontrar enEl blog de Raymond Chen..

Respuesta3

La respuesta sencilla es "porque no está escrito para funcionar de esa manera". Simplemente ingresando D:harás lo que quieras.

Curiosamente, al ingresar cd D:\somedir, de hecho, se cambiará el directorio actual en D: a \data, pero no se cambiará el símbolo del sistema actual a D:.

información relacionada