Warum ändert "cd D:" den Befehlskontext nicht in "D:"? [Duplikat]

19

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

Jedes Mal, wenn ich den Verzeichniskontext an einer Windows-Eingabeaufforderung in ein anderes Laufwerk (D, E, F oder was auch immer) ändern möchte, muss ich den "Drive letter":\Befehl verwenden, um ihn tatsächlich zu ändern. Wenn ich mit versuchen „cd Befehl“ auf cd H:\sie echo nur H: \ für mich und nichts zu tun:

Geben Sie hier eine Bildbeschreibung ein

Gibt es einen Grund für ein solches Verhalten? Ich meine, soll das nicht cd commandfunktionieren? Warum nicht?

Diogo
quelle
2
Verwandte .
Daniel Beck

Antworten:

28

Versuchen:

cd /d d:

/d wird auch Laufwerksbuchstaben sowie Verzeichnisse wechseln, für weitere Informationen siehe cd /?

jftuga
quelle
1
Wie es aussieht, ahmt cmd.exe das Verhalten von DOS in dieser Situation ziemlich gut nach, wobei das "aktuelle Verzeichnis" für jedes Laufwerk eindeutig gespeichert wird.
LawrenceC
4
Dies ist die eigentliche Antwort auf "Warum Witwen so arbeiten": Weil DOS es so gemacht hat.
KutuluMike
12

Der Grund, warum Windows sich so verhält, ist, dass DOS sich so verhält.

In DOS hat jedes Laufwerk ein eigenes aktuelles Verzeichnis, und der cdBefehl ändert das aktuelle Verzeichnis auf einem Laufwerk. Wenn dies auch das aktuelle Laufwerk ist , ändert sich auch Ihr Arbeitsverzeichnis. Wenn Sie das aktuelle Laufwerk ändern möchten, geben Sie einfach den Laufwerksbuchstaben als Befehl ein.

Beachten Sie, dass Windows auf diese Weise nicht mehr funktioniert - Sie haben immer nur ein aktuelles Verzeichnis -, aber die Befehlsshell ist sehr bemüht, so zu tun, als gäbe es immer noch aktuelle Verzeichnisse pro Laufwerk. Vermutlich dient dies dazu, die Kompatibilität mit vorhandenen DOS-Batch-Dateien zu erhalten.

Der Grund, warum DOS auf diese Weise funktioniert, geht auf die allerersten Versionen von DOS und CP / M zurück. Die blutigen Details finden Sie auf Raymond Chens Blog .

KutuluMike
quelle
6

Die direkte Antwort lautet: "Weil es nicht so geschrieben ist, dass es so funktioniert". Einfach eingeben D:wird tun, was Sie wollen.

Durch seltsames Eingeben cd D:\somedirwird das aktuelle Verzeichnis in D: in \ data geändert, die aktuelle Eingabeaufforderung jedoch nicht in D :.

uSlackr
quelle