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.


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


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.


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.


Isso seria maravilhoso como um comentário para a pergunta, mas não a responde.
Stuart Woodward
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.