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

226

Esta pode ser uma pergunta estúpida, e acho que procurei em outro lugar a resposta ... Pode ser um problema de caminho, mas quando abro a linha de comando e digito C:\>:

cd D:\

Não consigo acessar o drive D. Mesmo se eu digitar:

cd D:\<folder name>

Ele command.execompletará automaticamente a linha com a tecla Tab, para que ele saiba onde estou. Simplesmente não imprime para exibir o resultado ou me leva até lá. Esse problema existe para as unidades de rede também.

Agora, se eu usar o comando chdir( cd) assim:

chdir D: ou cd d:

Recebo a impressão D:\abaixo do comando, mas ele ainda diz que estou no C:\.

Sinto como se estivesse perdendo algo simples.

nicorellius
fonte
Eu tenho usado pushdno lugar de cdpraticamente todos os lugares, pois se comporta muito melhor em situações como esta.
Goyuix
5
Veja esta resposta " cd / d D: " superuser.com/a/135239/78897
Pacerier
1
Tente isso: cd / dd:
DevWL

Respostas:

324

Voltando aos dias do DOS, existe um "diretório atual" separado para cada unidade. cd D:\foldernamealtera o diretório atual de D: para o nome da pasta especificado, mas não altera o fato de você ainda estar trabalhando na C:unidade.

O que você quer é simples:

D:

Aqui você pode ver como a coisa "diretório atual separado para cada unidade" funciona:

C:\Users\coneslayer>e:

E:\>c:

C:\Users\coneslayer>cd e:\software

C:\Users\coneslayer>e:

e:\Software>
coneslayer
fonte
16
Em uma situação de "arma mais rápida do oeste", o vencedor é quem dá a melhor explicação. +1 e excluo minha resposta semelhante.
Gnoupi
2
Mina excluída também. Não há necessidade de confusão extra.
Th3dude 27/04
3
-1 a) você não apontou que a cd e:\softwarelinha não fez nada. Como se você colocasse um comando de CD fantasma lá Por quê? Para fazê-lo pensar que você estava usando CD quando não estava? eb) como você pode não mencionar a /dativação do CDing para um diretório específico em uma unidade diferente? Ele disse usando o comando cd ; embora seja bom que você tenha indicado como isso pode ser feito sem o comando do CD d:<ENTER>, você deveria ter mencionado para o comando CD também cd /d d:oucd /d d:\blah
barlop 27/07/16
3
@ Barlop O cd E:\softwareNÃO faz nada. Ele altera o diretório atual da partição E para a softwarepasta, que é demonstrada ao finalmente mudar para a partição E com E:. Boa sugestão com cd / d embora.
precisa
@miyalys ponto interessante e ótimo #
barlop
78

Ele fez o trabalho, como o comando é projetado para funcionar.

Você simplesmente não sabe como realmente deve funcionar.

Você não está usando um programa de shell Unix ou Linux. O cdcomando no interpretador de comandos da Microsoft não se comporta como os cdcomandos nessas conchas. Comporta-se de maneira um pouco diferente. Em particular, nem sempre muda o diretório . Nos shells Unix e Linux, cdapenas define o diretório de trabalho. No interpretador de comandos da Microsoft, cdàs vezes o consulta. Não há pwdcomando separado , o mesmo cdacontece com dois trabalhos.

Se você não fornecer argumentos ou um argumento que seja apenas uma letra de unidade e dois pontos sem um caminho, ele informará o diretório atual em vez de alterá-lo . Se você não fornecer argumentos, ele reportará o diretório atual da unidade atual do processo do interpretador de comandos. Se você der apenas uma letra de unidade e dois pontos como argumento, ele informará o diretório atual do processo do interpretador de comandos dessa unidade. Cada unidade possui seu próprio diretório atual no interpretador de comandos. (Esta é uma ficção mantida pelas bibliotecas de tempo de execução das implementações de várias linguagens de programação da Microsoft e de vários outros fornecedores. O Win32 em si não funciona dessa maneira.)

Portanto, quando você o apresentou d:como argumento, ele relatou o diretório atual do processo do interpretador de comandos na unidade D para você, o que aconteceu D:\. Se você não tivesse argumentado, teria relatado C:\a você.

Se você deseja que o cdcomando esteja sempre no modo definido e nunca no modo de consulta, é necessário adicionar a /Dopção a ele. Isso força o comando a sempre estar no modo de configuração e também o estende para que altere a unidade atual e também altere o diretório atual da unidade. (Em outras palavras, funciona mais como a API Win32 subjacente realmente funciona.)

Então, por exemplo, a linha de comando

cd / dd:
mudará o diretório para o diretório atual na unidade D e também a unidade atual para a unidade D.

Se você quiser alterar a unidade atual do processo do interpretador de comandos, o cdcomando não é o caminho. Você faz isso simplesmente digitando a letra da unidade e dois pontos:

d:

Leitura adicional

  • JP Software (2011). CD / CHDIR TCC Ajuda on-line.
  • Corporação Microsoft (2001). Chdir (CD) . Referência de linha de comando do TechNet Windows XP A – Z.
JdeBP
fonte
3
Não está completamente certo. Se você fizer cd d:\ isso, altera o diretório ativo d:. Se você fizer d:\ isso depois, será às d:\ . Se você cd d:\something\somethingnão fizer nada acontecerá a princípio. Mas se você fizer isso d:\ novamente, seu caminho será d:\something\something"!
precisa saber é
4
Nada disso contradiz o que está escrito acima, de forma alguma sinni800(além de você ter errado a sintaxe para alterar a unidade atual, isto é, mas vou ignorar isso). Não incluí uma discussão sobre o que acontece quando alguém fornece um nome de caminho em um argumento porque (a) não é disso que se trata e (b) está na leitura posterior.
JdeBP
6
Não, não somos. Seria errado falar de partições em vez de unidades aqui user unknown,. Para iniciantes, as partições não são iguais aos volumes e as letras das unidades são mapeadas para volumes, não para partições. E quando se está falando neste nível de abstração, letra de unidade e unidade atual são os termos convencionais, como usado aqui, na leitura adicional indicado, e até mesmo no cd /?texto de ajuda.
JdeBP
2
Eu uso esse comando há pelo menos 20 anos e nunca soube disso.
Chris Ballance
54

Com medo de que isso esteja incorreto. É verdade desde os dias do DOS, mas a linha de comando no Windows NT e posterior não é o DOS. Na linha de comando que todos usam hoje, você tem a opção / D. A opção / d alterará o diretório atual da unidade especificada E mudará para esse diretório. A opção / d deve ser especificada antes do caminho. Por exemplo:

C:\> cd /d D:\foo\bar\
D:\foo\bar\>

cd do prompt de comando do windows

Multiverse IT
fonte
4
+1 porque aprendi algo novo, mas acho que nada do que escrevi está incorreto.
coneslayer
3
Sua resposta também está correta, Multiverse IT, mas o coneslayer não estava incorreto. Obrigada pelos teus esforços. Eu aprendi dois grandes truques sobre esta questão.
Nicorellius
2
Da minha perspectiva "O que você quer é simples ... D:" está incorreto. Sim, funciona e é um método válido para atingir a meta, mas não é, estritamente falando, o que ele deveria desejar. Além disso, a maneira como o comentário é redigido implica que você não pode usar o CD para fazer isso - essa implicação está incorreta.
Multiverse IT
1
sua questão principal é "Não consigo acessar o drive D.". Como tal, a outra resposta está correta. Sua solução leva apenas um passo a menos (o que é bom). Não torna o outro incorreto.
Gnoupi
1
Hmm, "o que ele deveria querer". Soa bastante presuntivo ;-)
nicorellius
20

CD significa C hange D irectory, e não alterar unidade. Portanto, não mudaria para D: assim. Para conseguir isso, basta digitar a letra da unidade

por exemplo

d:

IDesconhecido
fonte
16
cd / DD: muda unidades e diretórios ...
Michael S.
Mas d: é uma partição, não uma unidade.
usuário desconhecido
1
@userunknown Na era Dos 1.0, quando o shell foi projetado, havia apenas disquetes que o AFAIK não pode ser particionado. O suporte inicial ao disco rígido era apenas para a partição primária (primeira) em uma unidade. O suporte estendido à partição não foi adicionado até mais tarde.
Dan Neely
Não vejo uma marca do MS-DOS 1.0 nem a 1.0 mencionada. Talvez você não possa particionar uma unidade com programas do MS-DOS, mas você pode instalar um MS-DOS em uma unidade particionada. Eu acho que o MS-DOS está sem suporte e a tag está lá, porque muitos usuários acreditam que cmd.exe e MS-DOS significam o mesmo, o que é outro erro a ser resolvido. A propósito: o MS-DOS 1.0 nunca foi publicado.
usuário desconhecido
1
@userunknown As decisões de design remontam às versões iniciais do DOS. Mudar o comportamento teria quebrado programas mais antigos (veja o comentário de Daniel Beck abaixo). PS; de acordo com a Wikipedia, o MS DOS 1.x foi publicado.
Dan Neely
9

O diretório de trabalho no cmd.exe é mantido em uma volume-by-volumebase; o diretório de trabalho da C:unidade é diferente do diretório de trabalho da D:unidade.

Quando você passa apenas uma letra de unidade cd, ela imprime o diretório de trabalho da unidade especificada.

No seu caso, o diretório de trabalho da D:unidade é a própria raiz do volume D:\,.

Para alterar volumes de C:que D:basta digitar a letra da unidade:

C:\>D:
D:\>
Andrew Lambert
fonte
2
cd / DD: muda unidades e diretórios ...
Michael S.
1
As partições são mapeadas para uma letra de unidade e são praticamente iguais a uma unidade. Você também pode mapear um diretório ou compartilhar em uma unidade, e eles se comportam da mesma maneira.
Marty Fried
8

Use cd / DD: para fazer isso. Você também pode especificar caminhos.

Michael S.
fonte
5

Se você deseja alterar a unidade em um prompt de comandos do DOS, basta escrever:

[Drive Letter]:

Por exemplo, se você deseja mover para a unidade D: \, basta digitar o seguinte em um prompt de comando:

D:
Darsak
fonte
Você muda a partição com [Drive Letter]:, acredite em mim ou teste-a!
usuário desconhecido
Oh uau, isso torna as coisas muito mais fáceis. Eu sempre esqueço o /dque torna a troca muito mais rápida.
Mateen Ulhaq 23/03
2

pushdfunciona mesmo quando você precisa acessar o subdiretório, por exemplo D:\Tests\Logs.

Basta usá-lo assim:

pushd D:\Tests\Logs

Se você deseja voltar ao diretório anterior, use popd:

C:\Users>pushd D:\Tests\Logs
D:\Tests\Logs>popd
C:\Users>
BladeMight
fonte
0

Enquanto você vai procurar a opção na barra de ferramentas e procurar o cmd ou selecionando o prompt de comando do Windows All app selection, ele leva para outro prompt de comando. Em vez disso, tente pressionar o botão Windows + R e procure pelo cmd necessário para a unidade C:>. De lá, você pode navegar para D:> ou em qualquer lugar que precisar

user609712
fonte