Mengapa "cd D:" tidak mengubah konteks perintah menjadi D :? [duplikat]

19

Kemungkinan Gandakan:
Menggunakan Perintah cd di Baris Perintah Windows, Tidak Dapat Menavigasi ke D: \

Setiap kali saya ingin mengubah konteks direktori ke drive lain (D, E, F, atau apa pun ..) pada prompt perintah Windows, saya harus menggunakan "Drive letter":\perintah untuk benar-benar mengubahnya. Jika saya mencoba dengan "cd perintah" di cd H:\itu hanya echo H: \ untuk saya dan melakukan apa-apa:

Masukkan deskripsi gambar di sini

Apakah ada alasan untuk perilaku seperti itu? Maksudku, tidak harus cd commandbekerja untuk melakukan ini? Kenapa tidak?

Diogo
sumber
2
Terkait .
Daniel Beck

Jawaban:

28

Mencoba:

cd /d d:

/d juga akan beralih huruf drive serta direktori, untuk informasi lainnya, lihat cd /?

jftuga
sumber
1
Sepertinya cmd.exe meniru perilaku DOS dengan cukup baik dalam situasi ini, di mana "direktori saat ini" untuk setiap drive dikenang dengan jelas.
LawrenceC
4
Ini adalah jawaban nyata untuk "mengapa Janda bekerja seperti ini": karena DOS melakukannya dengan cara itu.
KutuluMike
12

Alasan Windows berperilaku seperti ini, adalah karena DOS berperilaku seperti itu.

Di DOS, setiap drive memiliki direktori saat ini sendiri, dan cdperintah mengubah direktori saat ini di drive. Jika itu juga merupakan drive saat ini , maka direktori kerja Anda berubah bersamaan dengannya. Jika Anda ingin mengubah drive saat ini, Anda cukup menentukan huruf drive sebagai perintah.

Catatan bahwa Windows sebenarnya tidak berfungsi seperti ini lagi - Anda hanya memiliki satu direktori saat ini setiap saat - tetapi perintah shell berusaha keras untuk berpura-pura bahwa masih ada direktori saat ini per-drive. Agaknya ini untuk menjaga kompatibilitas dengan file batch DOS yang ada.

Alasan DOS bekerja dengan cara ini berasal dari versi DOS yang paling awal, dan CP / M sebelumnya. Rincian berdarah dapat ditemukan di blog Raymond Chen .

KutuluMike
sumber
6

Jawaban langsung adalah bahwa "karena tidak ditulis untuk bekerja seperti itu". Cukup memasukkan D:akan melakukan apa yang Anda inginkan.

Secara aneh memasukkan cd D:\somedirakan, pada kenyataannya, mengubah direktori saat ini pada D: ke \ data, tetapi tidak akan mengubah prompt perintah saat ini menjadi D :.

uSlackr
sumber