Por que o “cd D:” não muda o contexto do comando para D :? [duplicado]

16

Toda vez que eu quiser mudar o contexto do diretório para outra unidade (D, E, F, ou qualquer outra coisa ..) em um prompt de comando do Windows, devo usar o comando "Drive letter":\ para realmente alterá-lo. Se eu tentar com o comando "cd" , em cd H:\ , é só ecoar H: \ para mim e fazer nada:

Existe alguma razão para tal comportamento? Quero dizer, não foi cd command trabalho para fazer isso? Por que não?

    
por Diogo 16.04.2012 / 19:24

3 respostas

23

Tente:

cd /d d:

/d também alternará letras de unidade e diretórios, para outras informações, consulte cd /?

    
por 16.04.2012 / 19:26
11

A razão pela qual o Windows se comporta dessa maneira é porque o DOS se comportava dessa maneira.

No DOS, cada unidade possui seu próprio diretório atual, e o comando cd altera o diretório atual em uma unidade. Se isso também acontecer de ser a atual unidade , seu diretório de trabalho será alterado junto com ela. Se você quiser alterar a unidade atual, basta especificar a letra da unidade como um comando.

Observa que o Windows na verdade não funciona dessa forma - você só tem um diretório atual a qualquer momento - mas o shell de comando faz grandes esforços para fingir que ainda existem dirija os diretórios atuais. Presumivelmente, isso é para preservar a compatibilidade com arquivos em lotes do DOS existentes.

A razão pela qual o DOS funciona dessa maneira remonta às primeiras versões do DOS e CP / M antes dele. Os detalhes sangrentos podem ser encontrados no blog de Raymond Chen .

    
por 16.04.2012 / 20:07
5

A resposta direta é que "porque não está escrito para funcionar dessa maneira". Basta digitar D: para fazer o que você deseja.

Digitar curiosamente cd D:\somedir irá, de fato, alterar o diretório atual em D: para \ data, mas não irá alterar o prompt de comando atual para D :.

    
por 16.04.2012 / 19:33