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


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

cd D:\

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

cd D:\<folder name>

o command.exe completará automaticamente a linha com a tecla tab, para saber onde estou. Ele simplesmente não imprime para exibir o resultado ou realmente me leva até lá. Esse problema existe para as unidades de rede também.

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

chdir D: ou cd d:

Eu recebo a impressão do D:\ abaixo do comando, mas ainda diz que eu estou no C:\.

Eu sinto que estou sentindo falta de algo simples.


189


origem


Eu tenho usado pushd no lugar de cd praticamente em todos os lugares, uma vez que se comporta muito melhor em situações como esta. - Goyuix
Veja esta resposta "cd / d D:" superuser.com/a/135239/78897 - Pacerier
Tente isto: cd / d d: - DevWL


Respostas:


Voltando aos dias do DOS, há um "diretório atual" separado para cada unidade. cd D:\foldername altera o diretório atual de D: para o nome da pasta especificado, mas não altera o fato de que você ainda está trabalhando no diretório. C: dirigir.

O que você quer é simples:

D:

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

C:\Users\coneslayer>e:

E:\>c:

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

C:\Users\coneslayer>e:

e:\Software>

272



Em uma situação de "arma mais rápida no oeste", o vencedor é aquele que dá a melhor explicação. +1 e excluo minha resposta semelhante. - Gnoupi
Excluiu o meu também. Não há necessidade de desordem extra. - th3dude
-1 a) você não apontou que o cd e:\software linha não fez nada. Como se você tivesse um comando de CD fantasma lá Por quê? Para fazê-lo pensar que você estava usando CD quando não estava? e b) como na terra você não pode mencionar /d permitindo CDing para um diretório particular em uma unidade diferente Ele disse usando o comando cd Então, enquanto é bom que você apontou como isso pode ser feito sem o comando do CD d:<ENTER>, você deve ter mencionado para o comando do CD também cd /d d: ou cd /d d:\blah - barlop
@barlop The cd E:\software NÃO faz nada. Altera o diretório atual da partição E ao software pasta, que é o que é demonstrado quando, finalmente, mudar para a partição E com E:. Boa sugestão com cd / d embora. - miyalys
@miyalys interessante e ótimo ponto - barlop


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

Você simplesmente não sabe como isso realmente funciona.

Você não está usando um programa shell Unix ou Linux. o cd comando no interpretador de comandos da Microsoft não se comporta como o cd comandos em tais shells fazem. Ele se comporta de maneira um pouco diferente. Em particular, nem sempre muda de diretório. Em shells Unix e Linux, cd só define o diretório de trabalho. No interpretador de comandos da Microsoft, cd às vezes consulta isso. Não há separado pwd comando, então cd faz 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 relata o diretório atual em vez de alterá-lo. Se você não fornecer argumentos, ele relata o diretório atual da unidade atual do processo do interpretador de comandos. Se você fornecer apenas uma letra de unidade e dois-pontos como argumento, ele relata 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. (Essa é uma ficção mantida pelas bibliotecas de tempo de execução das implementações da Microsoft e de vários outros fornecedores de várias linguagens de programação. O próprio Win32 não funciona dessa maneira.)

Então, quando você deu d: como um argumento, ele relatou o diretório atual do processo do interpretador de comandos na unidade D para você, que por acaso era D:\. Se você não tivesse dado nenhum argumento, teria relatado C:\ para você.

Se você quiser o cd comando para estar sempre no modo de configuração e nunca estar no modo de consulta você precisa adicionar o /D opção para isso. Isso força o comando a estar sempre no modo de configuração e também o estende para que ele altere a unidade atual e também altere o diretório atual de uma unidade. (Em outras palavras, funciona mais como a API Win32 subjacente realmente faz.)

Então, por exemplo, a linha de comando

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

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

d:

Leitura adicional

  • JP Software (2011). CD / CHDIR Ajuda on-line do TCC.
  • Corporação Microsoft (2001). Chdir (CD). TechNet Windows XP Referência de linha de comando A – Z.

74



Post relacionado por Raymond Chen. - Daniel Beck♦
Não completamente certo. Se você fizer cd d:\  ele altera o diretório de trabalho d:. Se você fizer d:\  depois será em d:\ . Se você fizer cd d:\something\something nada vai acontecer no começo. Mas se você fizer d:\  depois, novamente, seu caminho será d:\something\something"! - sinni800
Nenhum dos quais contradiz o que está escrito acima de qualquer forma, sinni800 (além de você ter a sintaxe para mudar o drive atual errado, isto é, mas eu vou ignorar isso). Eu não incluí a discussão do que acontece quando alguém fornece um nome de caminho em um argumento porque (a) não é sobre isso que a questão se trata e (b) está na leitura adicional. - JdeBP
Não, não somos. Seria errado falar de partições em vez de dirigir aqui, user unknown. Para começar, as partições não são as mesmas que os volumes, e as letras das unidades mapeiam para volumes, não partições. E quando alguém está falando nesse nível de abstração, letra de drive e movimentação atual são os termos convencionais, como usados ​​aqui, na leitura adicional indicada, e até mesmo no cd /? Texto de ajuda. - JdeBP
Eu usei este comando por pelo menos 20 anos e nunca soube disso. - Chris Ballance


Com medo disso está incorreto. É verdade desde os dias do DOS, mas a linha de comando no Windows NT e posterior não é DOS. Na linha de comando que todos usam hoje, você tem a opção / D. A opção / d mudará 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\>

windows command prompt cd


42



+1 porque aprendi algo novo, mas não acho que nada do que escrevi esteja incorreto. - coneslayer
Sua resposta está correta também, Multiverse IT, mas o conelayer não estava incorreto. Obrigada pelos teus esforços. Eu aprendi dois grandes truques nesta questão. - nicorellius
Do meu ponto de vista "O que você quer é simples ... D:" está incorreto. Sim, funciona e é um método válido para alcançar o objetivo, mas não é, estritamente falando, o que ele deveria querer. Além disso, a forma como o comentário é redigido implica que você não pode usar o CD para fazer isso - essa implicação está incorreta. - Multiverse IT
Sua principal questão é "Eu não posso chegar ao drive D." Como tal, a outra resposta está correta. Sua solução leva apenas um passo a menos (o que é bom). Não faz o outro incorreto. - Gnoupi
Hmm, "o que ele deveria querer". Soa bastante presuntiva ;-) - nicorellius


CD apoia Change Directory e não alterar o Drive. Então, não mudaria para D: assim. Para conseguir isso, você teria que simplesmente digitar a letra da unidade

por exemplo.

d:


19



cd / D D: altera drives e diretórios ... - Michael S.
Mas d: é uma partição, não uma unidade. - user unknown
@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 do hardrive era apenas para a partição primária (primeira) de uma unidade. O suporte à partição estendida não foi adicionado até mais tarde. - Dan Neely
Eu não vejo uma marca do MS-DOS 1.0, nem 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á fora de suporte, porém, ea tag está lá, porque muitos usuários acreditam que cmd.exe e MS-DOS significa o mesmo, que é outro erro para resolver. Apropos: o MS-DOS 1.0 nunca foi publicado. - user unknown
@userunknown As decisões de design datam das 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 MS 1.x foi publicado. - Dan Neely


O diretório de trabalho no cmd.exe é mantido em um volume-by-volume base; o Diretório de Trabalho para o C: unidade é diferente do diretório de trabalho para o D: dirigir.

Quando você passa apenas uma letra de unidade para cd, imprimirá o diretório de trabalho da unidade especificada.

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

Para alterar volumes de C: para D: Basta digitar a letra da unidade:

C:\>D:
D:\>

9



cd / D D: altera drives e diretórios ... - Michael S.
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


Usar cd / D D: para fazer isso. Você pode especificar caminhos também.


8





Se você quiser alterar a unidade em um prompt de comando 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:

5



Você muda a partição com [Drive Letter]:, acredite em mim ou teste! - user unknown
Oh uau, isso torna as coisas muito mais fáceis. Eu sempre esqueço o /d então isso torna a troca muito mais rápida. - Mateen Ulhaq


pushd funciona mesmo quando você precisa ir para o subdiretório, por exemplo D:\Tests\Logs.

Apenas use assim:

pushd D:\Tests\Logs

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

C:\Users>pushd D:\Tests\Logs
D:\Tests\Logs>popd
C:\Users>

2