Tại sao không phải là cd cd D: Mười thay đổi bối cảnh lệnh thành D:? [bản sao]


19

Có thể trùng lặp:
Sử dụng lệnh cd trong Dòng lệnh Windows, Không thể điều hướng đến D: \

Mỗi lần tôi muốn thay đổi ngữ cảnh thư mục sang một ổ đĩa khác (D, E, F hoặc bất cứ điều gì ..) trên dấu nhắc lệnh của Windows, tôi phải sử dụng "Drive letter":\lệnh để thực sự thay đổi nó. Nếu tôi thử với "lệnh cd" trên cd H:\đó, hãy lặp lại H: \ cho tôi và không làm gì cả:

Nhập mô tả hình ảnh ở đây

Có một số lý do cho một hành vi như vậy? Ý tôi là, không cd commandlàm việc để làm điều này? Tại sao không?


Câu trả lời:


28

Thử:

cd /d d:

/d cũng sẽ chuyển đổi ký tự ổ đĩa cũng như các thư mục, để biết thông tin khác, xem cd /?


1
Có vẻ như cmd.exe bắt chước hành vi của DOS khá tốt trong tình huống này, theo đó "thư mục hiện tại" cho mỗi ổ đĩa được ghi nhớ rõ ràng.
LawrenceC

4
Đây là câu trả lời thực sự cho "tại sao Widows hoạt động theo cách này": bởi vì DOS đã làm theo cách đó.
KutuluMike

12

Lý do Windows hành xử theo cách này là vì DOS hành xử theo cách đó.

Trong DOS, mỗi ổ đĩa có thư mục hiện tại của riêng nó và cdlệnh thay đổi thư mục hiện tại trên một ổ đĩa. Nếu đó cũng là ổ đĩa hiện tại , thì thư mục làm việc của bạn sẽ thay đổi cùng với nó. Nếu bạn muốn thay đổi ổ đĩa hiện tại, bạn chỉ cần chỉ định ký tự ổ đĩa là một lệnh.

Lưu ý rằng Windows không thực sự hoạt động theo cách này nữa - bạn chỉ có một thư mục hiện tại bất kỳ lúc nào - nhưng trình vỏ lệnh sẽ rất dài để giả vờ rằng vẫn còn các thư mục hiện tại trên mỗi ổ đĩa. Có lẽ điều này là để duy trì khả năng tương thích với các tệp bó DOS hiện có.

Lý do DOS hoạt động theo cách này bắt nguồn từ các phiên bản đầu tiên của DOS và CP / M trước đó. Các chi tiết chính có thể được tìm thấy trên blog của Raymond Chen .


6

Câu trả lời thẳng thắn là "bởi vì nó không được viết để hoạt động theo cách đó". Đơn giản chỉ cần nhập D:sẽ làm những gì bạn muốn.

cd D:\somedirTrên thực tế, sẽ tò mò thay đổi thư mục hiện tại trên D: thành \ data, nhưng sẽ không thay đổi dấu nhắc lệnh hiện tại thành D :.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.