O `cd` não muda de diretório no Windows 7 [duplicado]

20

Possível duplicata:
usando o comando cd na linha de comando do Windows, não é possível navegar para D: \
CMD cd para outras unidades, exceto C: \ não está funcionando

Estou trabalhando cmd.exeno Windows 7 (em oposição ao Powershell). Tenho duas partições na minha unidade, C contém o SO e os programas instalados e D contém meus dados. Eu estava tentando cdde C para D, mas o cmd não me deixou:

C:\>cd D:\

C:\>

No entanto, quando eu digitar dir D:\, ele listará o conteúdo de D corretamente. Por que isso é feito e como posso corrigi-lo? O Powershell funciona bem para que eu possa usá-lo, mas gostaria de saber o que faz com que se cmdcomporte mal.

astay13
fonte
Alguém poderia criar uma tag msdos? Eu acho que essa pergunta é válida para todas as versões do DOS a partir da 1.0 ou superior. Se bem me lembro, o CP / M não tinha esse conceito, mas você poderia endereçar as unidades separadas acrescentando o driveletter: ao nome do arquivo. Eu acho que isso é importante, pois é uma pergunta válida para alguém que não viveu a era do DOS e não uma pergunta do Windows 7 como tal.
Stuart Woodward
@StuartWoodward, na verdade, o DOS 1.0 não tinha subdiretórios - eles foram introduzidos no 2.0.
Jesse Slicer

Respostas:

33

Você tem que usar apenas d: , nãocd d:\

EDIT: também é possível usar cd /d d:para alterar unidades usando cd

soandos
fonte
Não sei ao certo por que tomei essa decisão de design e estou procurando por ela, mas é assim que sempre foi.
Soandos
@ astay13 veja edit.
soandos
11
@soandos cdsignifica "alterar diretório" e D:é uma unidade, não um diretório. Veja a resposta de David para mais detalhes
Izkata 27/11
@ Izkata, por que você não pode mudar para um diretório em uma unidade diferente usando a mesma sintaxe usada para ir para uma pasta diferente? era isso que eu estava dizendo.
Soandos
Ele altera o diretório: por exemplo: C: \> cd D: \ test, altera o diretório atual no disco D: para testar, mas o prompt ainda está em C: #
Sebastian Godelet 27/11
28

O Windows rastreia um diretório de trabalho separado para cada unidade. Você está atualmente na unidade 'C' no diretório de trabalho '\'. Quando você digita, cd d:\ele altera o diretório de trabalho da unidade 'D' para '\' e não afeta o diretório de trabalho da unidade C. Para trocar de unidade, basta digitar D:. Você pode alterar os dois ao mesmo tempo com o /dparâmetro para cd.

David Schwartz
fonte
3
Na verdade, o Windows que o questionador diz que o xe está executando - Windows NT 6.1 - nunca - desde 1993 - não possui um diretório de trabalho separado para cada unidade. Há um diretório ativo por processo. A aparência de vários diretórios de trabalho em várias unidades é uma ficção mantida pelo interpretador de comandos da Microsoft e pelas bibliotecas de tempo de execução de seus idiomas, usando variáveis ​​de ambiente ocultas.
JdeBP
@JdeBP Variáveis ​​de ambiente ocultas que rastreiam um diretório de trabalho separado para cada unidade? E o interpretador de comandos da Microsoft e as bibliotecas de tempo de execução de seus idiomas fazem parte do Windows?
David Schwartz
1

Deve-se notar que pushd(por exemplo pushd D:\) sempre muda as unidades.

bobbymcr
fonte
Isso seria maravilhoso como um comentário para a pergunta, mas não a responde.
Stuart Woodward