Por que o cd no Windows não consegue alternar entre unidades? [duplicado]

12

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

Por que, apenas por que, é cdtão estúpido no Windows e não faz o que deveria ser feito em situações como esta:

I:\Documents and Settings\blah\>cd C:\somedir\
I:\Documents and Settings\blah\>

Eu sei que você pode chdir /d. Mas por que esse não é o comportamento padrão?

houbysoft
fonte
@kinokijuf: não edite as tags se não souber o que elas significam.
houbysoft 15/02/12
Não concordo que seja uma duplicata. O "duplicado" pergunta como , não por quê .
Vcsjones

Respostas:

21

Isso é por design. Cada "drive" possui seu próprio diretório de trabalho. Você pode usar chdirou simplesmente digitar a letra da unidade:

> D:

E isso mudará para a unidade D. Se você quiser saber por que esse comportamento existe, consulte a explicação de Raymond Chen

vcsjones
fonte
Como o blog diz ,, s/has/used to have/e o cmdshell emula esse comportamento.
user1686
Basicamente, porque cd é diretório de mudança, não unidade de mudança.
15372 Rob
11

No Windows poderia usar o nativo cd/d <drive>:<path>ou então chdir/dou pushd. É a /dopção que indica que a unidade também deve mudar. O pushdcomando faz isso por padrão.

Pode até criar um alias cd para que o comportamento padrão seja o seguinte:

doskey cd=chdir/d $*

Então pode usar fazer coisas como:

cd D:\Temp
cd C:\WINDOWS

e a unidade também mudará.

Veja a ajuda digitando cd/?para mais detalhes.

Felpudo, macio
fonte
2

É uma coisa histórica. cdsó muda o diretório atual na unidade que é especificado (corrente se não houver), e <drive>:muda unidades para a pasta nessa unidade que era cd'd mais cedo ( \se não houver)

Hello71
fonte
1

algumas conchas de terceiros - como o 4dos tem o comando CDD para este

Você pode criar um arquivo em lotes chamado "cdd.bat" no diretório principal do Windows, com a seguinte linha:

@cd /d %1 %2 %3 %4 %5 %6 %7 %8 %9

Agora, você pode fazer o seguinte com o novo comando CDD:

C:> cdd d:

D:> cdd c: \ documentos e configurações

C: \ Documentos e configurações> cdd d: \ data

D: \ dados>

jato
fonte
Que tal@cd /d %*
user1686