Sử dụng lệnh cd trong dòng lệnh Windows, không thể điều hướng đến D: \


226

Đây có thể là một câu hỏi ngu ngốc và tôi nghĩ rằng tôi đã tìm ở nơi khác để tìm câu trả lời ... Có thể là một vấn đề về đường dẫn, nhưng khi tôi mở dòng lệnh và gõ từ C:\>:

cd D:\

Tôi không thể vào ổ D. Ngay cả khi tôi gõ:

cd D:\<folder name>

command.exesẽ tự động hoàn thành dòng bằng phím tab, để nó biết tôi đang ở đâu. Nó chỉ không in để sàng lọc kết quả hoặc thực sự đưa tôi đến đó. Vấn đề này tồn tại cho các ổ đĩa mạng là tốt.

Bây giờ, nếu tôi sử dụng lệnh chdir( cd) như thế này:

chdir D: hoặc là cd d:

Tôi nhận được bản in ra D:\bên dưới lệnh nhưng nó vẫn báo tôi đang ở C:\.

Tôi cảm thấy như tôi đang thiếu một cái gì đó đơn giản.


Tôi đã sử dụng pushdthay thế cdkhá nhiều ở mọi nơi vì nó hoạt động tốt hơn nhiều trong các tình huống như thế này.
Goyuix

5
Xem câu trả lời này " cd / d D: " superuser.com/a/135239/78897
Pacerier

1
Hãy thử điều này: cd / dd:
DevWL

Câu trả lời:


324

Quay trở lại thời của DOS, có một "thư mục hiện tại" riêng cho mỗi ổ đĩa. cd D:\foldernamethay đổi thư mục hiện tại của D: thành tên người dùng được chỉ định, nhưng không thay đổi thực tế là bạn vẫn đang làm việc trên C:ổ đĩa.

Những gì bạn muốn là đơn giản:

D:

Ở đây bạn có thể thấy cách "thư mục hiện tại riêng biệt cho mỗi ổ đĩa" hoạt động:

C:\Users\coneslayer>e:

E:\>c:

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

C:\Users\coneslayer>e:

e:\Software>

16
Trong tình huống "súng nhanh nhất ở phía tây", người chiến thắng là người đưa ra lời giải thích tốt nhất. +1 và tôi xóa câu trả lời tương tự của mình.
Gnoupi

2
Đã xóa của tôi, quá. Không cần sự lộn xộn thêm.
th3dude

3
-1 a) bạn đã không chỉ ra rằng cd e:\softwaredòng không làm gì cả. Như thể bạn mắc kẹt một lệnh CD ảo trong đó Tại sao? Để làm cho anh ấy nghĩ rằng bạn đang sử dụng CD khi bạn không? và b) như thế nào trên trái đất bạn có thể không đề cập đến /dphép CDing vào một thư mục đặc biệt trên một ổ đĩa khác nhau Anh ấy nói cách sử dụng lệnh cd như vậy trong khi nó là tốt mà bạn chỉ ra nó như thế nào nó có thể được thực hiện mà không dùng lệnh CD d:<ENTER>, bạn có nên nói cho lệnh CD cũng cd /d d:haycd /d d:\blah
barlop

3
@barlop cd E:\softwareKHÔNG làm gì cả. Nó thay đổi thư mục hiện tại của phân vùng E thành softwarethư mục, đây là điều được thể hiện khi cuối cùng chuyển sang phân vùng E với E:. Đề nghị tốt với cd / d mặc dù.
miyalys

@miyalys điểm thú vị và tuyệt vời
barlop

78

đã làm việc, vì lệnh được thiết kế để làm việc.

Bạn chỉ đơn giản là không biết nó thực sự hoạt động như thế nào.

Bạn không sử dụng chương trình shell Unix hoặc Linux. Các cdlệnh trong thông dịch lệnh của Microsoft không cư xử như là cdcác lệnh trong vỏ như vậy làm. Nó hành xử hơi khác nhau. Đặc biệt, nó không luôn luôn thay đổi thư mục . Trong hệ vỏ Unix và Linux, cdchỉ bao giờ thiết lập thư mục làm việc. Trong trình thông dịch lệnh của Microsoft, cdđôi khi truy vấn nó. Không có pwdlệnh riêng biệt , cdhai công việc cũng vậy.

Nếu bạn cung cấp cho nó không có đối số, hoặc đối số chỉ là ký tự ổ đĩa và dấu hai chấm không có đường dẫn, thì nó sẽ báo cáo thư mục hiện tại thay vì thay đổi nó . Nếu bạn không có đối số, nó sẽ báo cáo thư mục hiện tại của ổ đĩa hiện tại của quá trình trình thông dịch lệnh. Nếu bạn chỉ cung cấp cho nó một ký tự ổ đĩa và dấu hai chấm làm đối số, nó sẽ báo cáo thư mục hiện tại của trình thông dịch lệnh của ổ đĩa đó. Mỗi ổ đĩa có thư mục hiện tại của riêng nó trong trình thông dịch lệnh. (Đây là một tiểu thuyết được duy trì bởi các thư viện thời gian chạy cho Microsoft và một số nhà cung cấp khác về các ngôn ngữ lập trình khác nhau. Bản thân Win32 không hoạt động theo cách này.)

Vì vậy, khi bạn đưa nó d:làm đối số, nó đã báo cáo thư mục hiện tại của trình thông dịch lệnh trên ổ đĩa D cho bạn, điều này đã xảy ra D:\. Nếu bạn không đưa ra bất kỳ tranh luận nào, nó sẽ báo cáo C:\cho bạn.

Nếu bạn muốn cdlệnh luôn ở chế độ cài đặt và không bao giờ ở chế độ truy vấn, bạn cần thêm /Dtùy chọn vào nó. Điều này buộc lệnh phải luôn ở chế độ cài đặt và cũng mở rộng nó để nó thay đổi ổ đĩa hiện tại cũng như thay đổi thư mục hiện tại của ổ đĩa. (Nói cách khác, nó hoạt động giống như API Win32 cơ bản thực sự có.)

Vì vậy, ví dụ, dòng lệnh

cd / đ:
sẽ thay đổi thư mục thành bất cứ thư mục hiện tại nào trên ổ D và cũng thay đổi ổ đĩa hiện tại thành ổ D.

Nếu bạn muốn thay đổi ổ đĩa hiện tại của trình thông dịch lệnh, thì cdlệnh không phải là cách. Bạn làm như vậy bằng cách chỉ cần gõ ký tự ổ đĩa và dấu hai chấm:

Cười mở miệng:

đọc thêm

  • Phần mềm JP (2011). CD / CHDIR TCC Trợ giúp trực tuyến.
  • Tập đoàn Microsoft (2001). Chdir (CD) . TechNet Windows XP Tham chiếu dòng lệnh A Z Z.


3
Không hoàn toàn đúng. Nếu bạn làm cd d:\ nó thay đổi thư mục làm việc trên d:. Nếu bạn làm d:\ sau đó nó sẽ ở d:\ . Nếu bạn không làm cd d:\something\somethinggì sẽ xảy ra lúc đầu. Nhưng nếu bạn làm d:\ lại sau đó, con đường của bạn sẽ là d:\something\something"!
sinni800

4
Không ai trong số đó mâu thuẫn với những gì được viết ở trên theo bất kỳ cách nào, sinni800(ngoài việc bạn nhận được cú pháp thay đổi ổ đĩa hiện tại sai, đó là, nhưng tôi sẽ bỏ qua điều đó). Tôi đã không bao gồm thảo luận về những gì xảy ra khi một người cung cấp tên đường dẫn trong một đối số bởi vì (a) đó không phải là câu hỏi về điều gì và (b) nó sẽ được đọc thêm.
JdeBP

6
Không, chúng tôi không phải. Sẽ là sai lầm khi nói về các phân vùng thay vì các ổ đĩa ở đây , user unknown. Đối với người mới bắt đầu, các phân vùng không giống như các tập và lái các chữ cái ánh xạ tới các tập, không phải các phân vùng. Và khi một người đang nói ở mức độ trừu tượng này, ký tự ổ đĩaổ đĩa hiện tại là các thuật ngữ thông thường, như được sử dụng ở đây, trong phần đọc thêm được chỉ ra, và thậm chí trong cd /?văn bản trợ giúp.
JdeBP

2
Tôi đã sử dụng lệnh này trong ít nhất 20 năm và không bao giờ biết điều này.
Chris Ballance

54

Sợ điều này là không chính xác. Điều đó đúng từ thời của DOS, nhưng dòng lệnh trong Windows NT và sau này không phải là DOS. Trong dòng lệnh mà mọi người sử dụng ngày nay, bạn có công tắc / D. Khóa chuyển đổi / d sẽ thay đổi thư mục hiện tại của ổ đĩa được chỉ định VÀ thay đổi thư mục đó. Công tắc / d phải được chỉ định trước đường dẫn. Ví dụ:

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

cửa sổ nhắc lệnh cd


4
+1 vì tôi đã học được điều gì đó mới, nhưng tôi không nghĩ rằng bất cứ điều gì tôi viết là không chính xác.
coneslayer

3
Câu trả lời của bạn cũng đúng, Multiverse IT, nhưng coneslayer không chính xác. Cảm ơn những nỗ lực của bạn. Tôi đã học được hai thủ thuật tuyệt vời cho câu hỏi này.
nicorellius

2
Từ quan điểm của tôi "Những gì bạn muốn là đơn giản ... D:" là không chính xác. Vâng, nó hoạt động và là một phương pháp hợp lệ để đạt được mục tiêu, nhưng nó không phải, nói đúng ra những gì anh ấy muốn. Ngoài ra, cách nhận xét được diễn đạt ngụ ý rằng bạn không thể sử dụng CD để làm điều này - hàm ý đó không chính xác.
Multiverse IT

1
vấn đề chính của anh là "Tôi không thể vào ổ D.". Như vậy, câu trả lời khác là chính xác. Giải pháp của bạn chỉ cần một bước ít hơn (đó là tốt). Nó không làm cho cái khác không chính xác.
Gnoupi

1
Hmm, "những gì anh ấy nên muốn." Âm thanh khá giả định ;-)
nicorellius

20

CD là viết tắt của C hange D irectory, và không Change Drive. Vì vậy, nó sẽ không thay đổi thành D: như thế. Để đạt được điều này, bạn chỉ cần gõ ký tự ổ đĩa

ví dụ

Cười mở miệng:


16
cd / DD: thay đổi ổ đĩa và thư mục ...
Michael S.

Nhưng d: là một phân vùng, không phải là một ổ đĩa.
người dùng không xác định

1
@userunknown Trong kỷ nguyên Dos 1.0 khi vỏ được thiết kế, chỉ có các đĩa mềm mà AFAIK không thể được phân vùng. Hỗ trợ ổ cứng ban đầu chỉ dành cho phân vùng chính (đầu tiên) trên ổ đĩa. Hỗ trợ phân vùng mở rộng không được thêm vào sau này.
Dan Neely

Tôi không thấy thẻ MS-DOS 1.0, hay 1.0 được đề cập. Có thể bạn không thể phân vùng ổ đĩa với các chương trình MS-DOS, nhưng bạn có thể cài đặt MS-DOS trên ổ đĩa được phân vùng. Tôi đoán rằng MS-DOS không hỗ trợ, và thẻ ở đó, bởi vì nhiều người dùng tin rằng cmd.exe và MS-DOS có nghĩa giống nhau, đó là một lỗi khác cần giải quyết. Apropose: MS-DOS 1.0 chưa bao giờ được công bố.
người dùng không xác định

1
@userunknown Các quyết định thiết kế bắt nguồn từ các phiên bản ban đầu của DOS. Thay đổi hành vi sẽ phá vỡ các chương trình cũ hơn (xem bình luận của Daniel Beck bên dưới). PS; theo Wikipedia MS DOS 1.x đã được xuất bản.
Dan Neely

9

Thư mục làm việc trong cmd.exe được duy trì trên volume-by-volumecơ sở; Thư mục làm việc cho C:ổ đĩa khác với thư mục làm việc cho D:ổ đĩa.

Khi bạn chỉ chuyển một ký tự ổ đĩa cho cdnó, nó sẽ in thư mục làm việc cho ổ đĩa được chỉ định.

Trong trường hợp của bạn, thư mục làm việc của D:ổ đĩa là chính gốc âm lượng , D:\.

Để thay đổi âm lượng từ C:để D:chỉ cần nhập ký tự ổ đĩa:

C:\>D:
D:\>

2
cd / DD: thay đổi ổ đĩa và thư mục ...
Michael S.

1
Các phân vùng được ánh xạ tới một ký tự ổ đĩa và gần giống như một ổ đĩa. Bạn cũng có thể ánh xạ một thư mục hoặc chia sẻ vào một ổ đĩa và chúng hoạt động như nhau.
Marty Fried

8

Sử dụng cd / DD: để làm điều này. Bạn cũng có thể chỉ định đường dẫn.


5

Nếu bạn muốn thay đổi ổ đĩa trong dấu nhắc lệnh của DOS thì bạn chỉ cần viết:

[Drive Letter]:

Ví dụ: nếu bạn muốn di chuyển đến ổ D: \ thì bạn chỉ cần gõ dòng sau vào dấu nhắc lệnh:

D:

Bạn thay đổi phân vùng với [Drive Letter]:, tin tôi hoặc kiểm tra nó!
người dùng không xác định

Oh wow, điều đó làm cho mọi thứ dễ dàng hơn nhiều. Tôi luôn quên /dđiều này làm cho việc chuyển đổi nhanh hơn nhiều.
Mateen Ulhaq

2

pushdhoạt động ngay cả khi bạn cần đi đến thư mục ổ đĩa, vd D:\Tests\Logs.

Chỉ cần sử dụng nó như vậy:

pushd D:\Tests\Logs

Nếu bạn muốn quay lại thư mục trước, hãy sử dụng popd:

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

0

Trong khi bạn sẽ tìm kiếm tùy chọn trong thanh công cụ và tìm kiếm cmd hoặc bằng cách chọn windows Tất cả ứng dụng chọn dấu nhắc lệnh, sau đó sẽ đưa đến một số dấu nhắc lệnh khác. Thay vào đó, hãy thử nhấn nút windows + R và tìm kiếm cmd để vào ổ C:>. Từ đó bạn có thể điều hướng đến D:> hoặc bất cứ nơi nào bạn cần

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.