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

19

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

Toda vez que quero alterar 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 "Drive letter":\comando para realmente alterá-lo. Se eu tentar com "comando cd" em cd H:\apenas ecoar H: \ para mim e não fazer nada:

Digite a descrição da imagem aqui

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

Diogo
fonte
2
Relacionado .
Daniel Beck

Respostas:

28

Experimentar:

cd /d d:

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

jftuga
fonte
11
Parece que o cmd.exe imita muito bem o comportamento do DOS nessa situação, pelo qual o "diretório atual" de cada unidade é lembrado de maneira distinta.
21812 LawrenceC
4
Esta é a verdadeira resposta para "por que as Viúvas funcionam dessa maneira": porque o DOS fez dessa maneira.
KutuluMike
12

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 essa também for a unidade atual , seu diretório de trabalho mudará junto com ela. Se você deseja alterar a unidade atual, basta especificar a letra da unidade como um comando.

Observa que o Windows não funciona mais dessa maneira - você só tem um diretório atual a qualquer momento -, mas o shell de comando faz todo o possível para fingir que ainda existem diretórios atuais por unidade. Presumivelmente, isso é para preservar a compatibilidade com os arquivos em lote do DOS existentes.

O motivo pelo qual o DOS funciona dessa maneira remonta às versões mais antigas do DOS e ao CP / M anterior. Os detalhes sangrentos podem ser encontrados no blog de Raymond Chen .

KutuluMike
fonte
6

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

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

uSlackr
fonte