Por que “cd D:” não altera o contexto do comando para D:?

Por que “cd D:” não altera o contexto do comando para D:?

Possível duplicata:
Usando o comando cd na linha de comando do Windows, não é possível navegar para D:\

Toda vez que desejo alterar o contexto do diretório para outra unidade (D, E, F ou qualquer outra) em um prompt de comando do Windows, devo usar "Drive letter":\o comando para realmente alterá-lo. Se eu tentar com"comando cd"nele cd H:\apenas echo H:\ for me e não faça nada:

Insira a descrição da imagem aqui

Existe alguma razão para tal comportamento? Quero dizer, não deveria cd commandtrabalhar para fazer isso? Por que não?

Responder1

Tentar:

cd /d d:

/dtambém mudará letras de unidade, bem como diretórios; para outras informações, consultecd /?

Responder2

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

No DOS, cada unidade possui seu próprio diretório atual e o cdcomando altera o diretório atual em uma unidade. Se esse também for o atualdirigir, então seu diretório de trabalho muda junto com ele. Se quiser alterar a unidade atual, basta especificar a letra da unidade como um comando.

Observa que o Windows na verdade nãotrabalhardesta forma - você só tem um diretório atual a qualquer momento - mas o shell de comando faz de tudo para fingir que ainda existem diretórios atuais por unidade. Presumivelmente, isso é para preservar a compatibilidade com os arquivos em lote do DOS existentes.

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

Responder3

A resposta direta é "porque não foi escrito para funcionar dessa maneira". Basta entrar D:e você fará o que quiser.

Curiosamente, inserir cd D:\somedirirá, de fato, alterar o diretório atual em D: para \data, mas não alterará o prompt de comando atual para D:.

informação relacionada