Warum ändert „cd D:“ den Befehlskontext nicht zu D:?

Warum ändert „cd D:“ den Befehlskontext nicht zu D:?

Mögliches Duplikat:
Bei Verwendung des Befehls „cd“ in der Windows-Eingabeaufforderung ist die Navigation zu D:\ nicht möglich.

Jedes Mal, wenn ich in einer Windows-Eingabeaufforderung den Verzeichniskontext auf ein anderes Laufwerk (D, E, F oder was auch immer) ändern möchte, muss ich "Drive letter":\den Befehl verwenden, um ihn tatsächlich zu ändern. Wenn ich es mit„cd-Befehl“bei cd H:\mir genügt es, H:\ zu echoen und nichts zu tun:

Bildbeschreibung hier eingeben

Gibt es einen Grund für ein solches Verhalten? Ich meine, sollte cd commanddas nicht funktionieren? Warum funktioniert es nicht?

Antwort1

Versuchen:

cd /d d:

/dwechselt auch Laufwerksbuchstaben und Verzeichnisse, weitere Informationen finden Sie untercd /?

Antwort2

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

Unter DOS hat jedes Laufwerk sein eigenes aktuelles Verzeichnis und der cdBefehl ändert das aktuelle Verzeichnis auf einem Laufwerk. Wenn dies auch das aktuelle ist,fahren, dann ändert sich auch Ihr Arbeitsverzeichnis. Wenn Sie das aktuelle Laufwerk wechseln möchten, geben Sie einfach den Laufwerksbuchstaben als Befehl an.

Stellt fest, dass Windows nicht wirklicharbeitennicht mehr so ​​- Sie haben immer nur ein aktuelles Verzeichnis - aber die Befehlsshell tut alles, um vorzutäuschen, dass es immer noch aktuelle Verzeichnisse pro Laufwerk gibt. Vermutlich dient dies dazu, die Kompatibilität mit vorhandenen DOS-Batchdateien zu wahren.

Der Grund, warum DOS auf diese Weise funktioniert, geht auf die frühesten Versionen von DOS und CP/M zurück. Die grausamen Details finden Sie aufRaymond Chens Blog.

Antwort3

Die direkte Antwort lautet: „Weil es nicht so geschrieben ist, dass es so funktioniert.“ Durch einfaches Eingeben D:wird das gewünschte Ergebnis erzielt.

Interessanterweise wird durch die Eingabe cd D:\somedirzwar das aktuelle Verzeichnis auf D: in \data geändert, die aktuelle Eingabeaufforderung wird jedoch nicht in D: geändert.

verwandte Informationen