Mit dem Befehl cd in der Windows-Befehlszeile kann nicht zu D: \ navigiert werden.


226

Dies mag eine blöde Frage sein, und ich glaube, ich habe nach einer anderen Stelle gesucht, um die Antwort zu finden ... Könnte ein Pfadproblem sein, aber wenn ich die Befehlszeile öffne und Folgendes eingebe C:\>:

cd D:\

Ich komme nicht zum Laufwerk D. Auch wenn ich tippe:

cd D:\<folder name>

Die command.exeZeile wird automatisch mit der Tabulatortaste vervollständigt, sodass sie weiß, wo ich mich befinde. Es wird einfach nicht gedruckt, um das Ergebnis zu überprüfen oder mich dorthin zu bringen. Dieses Problem tritt auch bei den Netzlaufwerken auf.

Nun, wenn ich den chdir( cd) Befehl so benutze :

chdir D: oder cd d:

Ich erhalte den Ausdruck D:\unter dem Befehl, aber es heißt immer noch, dass ich in der bin C:\.

Ich habe das Gefühl, etwas Einfaches zu vermissen.


Ich habe fast überall pushdanstelle von verwendet cd, da es sich in Situationen wie diesen viel besser verhält.
Goyuix

5
Sehen Sie diese Antwort " cd / d D: " superuser.com/a/135239/78897
Pacerier

1
Versuchen Sie
Folgendes

Antworten:


324

In den Tagen von DOS gibt es für jedes Laufwerk ein eigenes "aktuelles Verzeichnis". cd D:\foldernameÄndert das aktuelle Verzeichnis von D: in den angegebenen Ordnernamen, ändert jedoch nichts an der Tatsache, dass Sie noch auf dem C:Laufwerk arbeiten.

Was Sie wollen, ist einfach:

D:

Hier können Sie sehen, wie das "separate aktuelle Verzeichnis für jedes Laufwerk" funktioniert:

C:\Users\coneslayer>e:

E:\>c:

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

C:\Users\coneslayer>e:

e:\Software>

16
In einer Situation mit der "schnellsten Waffe im Westen" ist der Gewinner derjenige, der die beste Erklärung abgibt. +1, und ich lösche meine ähnliche Antwort.
Gnoupi

2
Meins auch gelöscht. Keine Notwendigkeit für die zusätzliche Unordnung.
th3dude

3
-1 a) Sie haben nicht darauf hingewiesen, dass die cd e:\softwareZeile nichts bewirkt hat. Als ob Sie einen Phantom-CD-Befehl hineingesteckt hätten. Warum? Um ihn glauben zu lassen, dass Sie CD benutzt haben, als Sie es nicht waren? und b) wie auf der Erde können Sie erwähnen nicht /dCDing zu einem bestimmten Verzeichnis auf einem anderen Laufwerk ermöglicht er gesagt hat cd Befehl so , während es gut, dass Sie darauf hingewiesen, wie kann es ohne den CD - Befehl ausgeführt werden d:<ENTER>, sollten Sie für erwähnt haben das CD-Kommando auch cd /d d:odercd /d d:\blah
barlop

3
@barlop Das cd E:\softwaremacht NICHT nichts. Es wechselt das aktuelle Verzeichnis der E-Partition in den softwareOrdner, was beim endgültigen Wechsel auf die E-Partition mit demonstriert wird E:. Guter Vorschlag mit CD / D.
Miyalys

@ Miyalys interessant und großartiger Punkt
Barlop

78

Es hat funktioniert, da der Befehl so konzipiert ist, dass er funktioniert.

Sie wissen einfach nicht, wie es eigentlich funktionieren soll.

Sie verwenden kein Unix- oder Linux-Shell-Programm. Der cdBefehl in Microsofts Befehlsinterpreter verhält sich nicht so wie die cdBefehle in solchen Shells. Es verhält sich etwas anders. Insbesondere wird das Verzeichnis nicht immer geändert . Legt in Unix- und Linux-Shells cdimmer nur das Arbeitsverzeichnis fest. cdFragen Sie es manchmal im Microsoft-Befehlsinterpreter ab . Es gibt keinen separaten pwdBefehl, ebenso wenig cdwie zwei Jobs.

Wenn Sie keine Argumente oder nur einen Laufwerksbuchstaben und einen Doppelpunkt ohne Pfad angeben, wird das aktuelle Verzeichnis gemeldet, anstatt es zu ändern . Wenn Sie keine Argumente angeben, wird das aktuelle Verzeichnis des aktuellen Laufwerks des Befehlsinterpreterprozesses gemeldet. Wenn Sie nur einen Laufwerksbuchstaben und einen Doppelpunkt als Argument angeben, wird das aktuelle Verzeichnis des Befehlsinterpreterprozesses auf diesem Laufwerk gemeldet. Jedes Laufwerk verfügt über ein eigenes aktuelles Verzeichnis im Befehlsinterpreter. (Dies ist eine Fiktion, die von den Laufzeitbibliotheken für die Implementierungen verschiedener Programmiersprachen von Microsoft und mehreren anderen Anbietern verwaltet wird. Win32 selbst funktioniert nicht auf diese Weise.)

Als Sie es d:als Argument gaben , meldete es Ihnen das aktuelle Verzeichnis des Befehlsinterpreterprozesses auf Laufwerk D, das zufällig vorhanden war D:\. Wenn Sie ihm überhaupt keine Argumente gegeben hätten, hätte C:\er Ihnen berichtet .

Wenn Sie möchten, dass sich der cdBefehl immer im festgelegten Modus befindet und sich niemals im Abfragemodus befindet , müssen Sie die /DOption hinzufügen . Dies erzwingt, dass sich der Befehl immer im festgelegten Modus befindet, und erweitert ihn auch so, dass er das aktuelle Laufwerk sowie das aktuelle Verzeichnis eines Laufwerks ändert. (Mit anderen Worten, es funktioniert eher wie die zugrunde liegende Win32-API.)

So zum Beispiel die Kommandozeile

cd / dd:
ändert das Verzeichnis in das aktuelle Verzeichnis auf Laufwerk D und das aktuelle Laufwerk in Laufwerk D.

Wenn Sie das aktuelle Laufwerk des cdBefehlsinterpreterprozesses ansonsten ändern möchten, ist der Befehl nicht der richtige. Dazu geben Sie einfach den Laufwerksbuchstaben und einen Doppelpunkt ein:

d:

Weitere Lektüre

  • JP Software (2011). CD / CHDIR TCC Online-Hilfe.
  • Microsoft Corporation (2001). Chdir (CD) . TechNet Windows XP-Befehlszeilenreferenz A – Z.


3
Nicht ganz richtig. Wenn Sie dies tun cd d:\ , ändert sich das Arbeitsverzeichnis auf d:. Wenn Sie d:\ danach tun , wird es bei sein d:\ . Wenn Sie dies cd d:\something\somethingtun, geschieht zunächst nichts. Aber wenn Sie es d:\ später noch einmal tun , wird Ihr Weg sein d:\something\something"!
sinni800

4
Nichts davon widerspricht in irgendeiner Weise dem, was oben geschrieben steht sinni800(abgesehen davon, dass Sie die Syntax zum Ändern des aktuellen Laufwerks falsch verstanden haben, aber ich werde das übersehen). Ich habe keine Diskussion darüber aufgenommen, was passiert, wenn man einen Pfadnamen in einem Argument angibt, weil (a) darum es nicht geht und (b) es in der weiteren Lektüre steht.
JdeBP

6
Nein, sind wir nicht. Es wäre falsch, hier von Partitionen statt von Laufwerken zu sprechen user unknown. Für den Anfang sind Partitionen nicht mit Volumes identisch, und Laufwerksbuchstaben werden Volumes zugeordnet, nicht Partitionen. Und wenn man auf dieser Abstraktionsebene spricht, sind Laufwerksbuchstabe und aktuelles Laufwerk die üblichen Begriffe, wie sie hier verwendet werden, in der angegebenen weiteren Lektüre und sogar im cd /?Hilfetext.
JdeBP

2
Ich habe diesen Befehl seit mindestens 20 Jahren verwendet und wusste dies nie.
Chris Ballance

54

Ich fürchte, das ist falsch. Es ist wahr aus den Tagen von DOS, aber die Befehlszeile in Windows NT und höher ist nicht DOS. In der Befehlszeile, die heute jeder verwendet, haben Sie die Option / D. Die Option / d ändert das aktuelle Verzeichnis des angegebenen Laufwerks UND wechselt in dieses Verzeichnis. Die Option / d muss vor dem Pfad angegeben werden. Zum Beispiel:

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

Windows-Eingabeaufforderung CD


4
+1, weil ich etwas Neues gelernt habe, aber ich glaube nicht, dass etwas, das ich geschrieben habe, falsch ist.
Coneslayer

3
Ihre Antwort ist auch richtig, Multiverse IT, aber coneslayer war nicht falsch. Danke für deine Bemühungen. Ich habe zwei großartige Tricks zu dieser Frage gelernt.
Nicorellius

2
Aus meiner Sicht ist "Was Sie wollen, ist einfach ... D:" falsch. Ja, es funktioniert und ist eine gültige Methode, um das Ziel zu erreichen, aber genau genommen ist es nicht das, was er wollen sollte. Darüber hinaus impliziert die Art und Weise, wie der Kommentar formuliert ist, dass Sie CD nicht verwenden können, um dies zu tun - diese Implikation ist falsch.
Multiverse IT

1
Sein Hauptproblem ist "Ich komme nicht zum Laufwerk D". Insofern ist die andere Antwort richtig. Ihre Lösung dauert nur einen Schritt weniger (was gut ist). Es macht den anderen nicht falsch.
Gnoupi

1
Hmm, "was er wollen sollte." Klingt ziemlich mutmaßlich ;-)
Nicorellius

20

CD steht für C hange D irectory und nicht Laufwerk ändern. Es würde sich also nicht zu D: so ändern. Um dies zu erreichen, müssten Sie einfach den Laufwerksbuchstaben eingeben

z.B

d:


16
CD / DD: Wechselt Laufwerke und Verzeichnisse ...
Michael S.

Aber d: ist eine Partition, kein Laufwerk.
Benutzer unbekannt

1
@userunknown In der Ära von Dos 1.0, als die Shell entworfen wurde, gab es nur Disketten, die von AFAIK nicht partitioniert werden konnten. Die anfängliche Festplattenunterstützung galt nur für die primäre (erste) Partition auf einem Laufwerk. Erweiterte Partitionsunterstützung wurde erst später hinzugefügt.
Dan Neely

Ich sehe kein MS-DOS 1.0-Tag, noch wird 1.0 erwähnt. Möglicherweise können Sie ein Laufwerk nicht mit MS-DOS-Programmen partitionieren, Sie können jedoch MS-DOS auf einem partitionierten Laufwerk installieren. Ich vermute, dass MS-DOS nicht mehr unterstützt wird, und das Tag ist da, da viele Benutzer glauben, dass cmd.exe und MS-DOS dasselbe bedeuten, was ein weiterer Fehler ist, den es zu beheben gilt. Apropos: MS-DOS 1.0 wurde nie veröffentlicht.
Benutzer unbekannt

1
@userunknown Die Entwurfsentscheidungen gehen auf die ersten Versionen von DOS zurück. Eine Verhaltensänderung hätte ältere Programme kaputt gemacht (siehe Daniel Becks Kommentar unten). PS; laut Wikipedia wurde MS DOS 1.x veröffentlicht.
Dan Neely

9

Das Arbeitsverzeichnis in cmd.exe wird auf einer volume-by-volumeBasis verwaltet. Das Arbeitsverzeichnis für das C:Laufwerk unterscheidet sich vom Arbeitsverzeichnis für das D:Laufwerk.

Wenn Sie nur einen Laufwerksbuchstaben übergeben cd, wird das Arbeitsverzeichnis für das angegebene Laufwerk gedruckt.

In Ihrem Fall ist das Arbeitsverzeichnis des D:Laufwerks das Volume root selbst D:\.

Um die Lautstärke von C:zu ändern , geben Sie D:einfach den Laufwerksbuchstaben ein:

C:\>D:
D:\>

2
CD / DD: Wechselt Laufwerke und Verzeichnisse ...
Michael S.

1
Partitionen sind einem Laufwerksbuchstaben zugeordnet und entsprechen praktisch einem Laufwerk. Sie können auch ein Verzeichnis oder eine Freigabe einem Laufwerk zuordnen, und sie verhalten sich gleich.
Marty Fried

8

Verwenden Sie cd / DD: dies zu tun. Sie können auch Pfade angeben.


5

Wenn Sie das Laufwerk in einer DOS-Eingabeaufforderung ändern möchten, müssen Sie nur schreiben:

[Drive Letter]:

Wenn Sie beispielsweise zum Laufwerk D: \ wechseln möchten, müssen Sie an einer Eingabeaufforderung nur Folgendes eingeben:

D:

Sie ändern die Partition mit [Drive Letter]:, glauben Sie mir oder testen Sie es aus!
Benutzer unbekannt

Oh wow, das macht die Sache verdammt viel einfacher. Ich vergesse immer, das /dmacht das Umschalten viel schneller.
Mateen Ulhaq

2

pushdfunktioniert auch, wenn Sie zum Laufwerk-Unterverzeichnis wechseln müssen, z D:\Tests\Logs.

Benutze es einfach so:

pushd D:\Tests\Logs

Wenn Sie zum vorherigen Verzeichnis zurückkehren möchten, verwenden Sie popd:

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

0

Wenn Sie die Suchoption in der Symbolleiste aufrufen und nach cmd suchen oder die Eingabeaufforderung zum Auswählen von Windows All App auswählen, wird eine andere Eingabeaufforderung aufgerufen. Versuchen Sie stattdessen, die Windows-Taste + R zu drücken und suchen Sie nach cmd, das für C:> drive erforderlich ist. Von dort aus können Sie zu D:> oder zu einem beliebigen Ort navigieren

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.