为什么“ cd D:”不将命令上下文更改为D :?[重复]


19

可能重复:
在Windows命令行中使用cd命令,无法导航至D:\

每次我想在Windows命令提示符下将目录上下文更改为另一个驱动器(D,E,F或其他任何内容)时,都必须使用"Drive letter":\command进行实际更改。如果我尝试使用“ cd命令”,请cd H:\为我回显H:\而不执行任何操作:

在此处输入图片说明

有这种行为的原因吗?我的意思是,cd command应该这样做吗?为什么不呢?


Answers:


28

尝试:

cd /d d:

/d 还将切换驱动器号和目录,有关其他信息,请参见 cd /?


1
看起来cmd.exe在这种情况下可以很好地模仿DOS的行为,从而可以清楚地记住每个驱动器的“当前目录”。
LawrenceC

4
这是“寡妇为什么这样工作的真正答案”:因为DOS就是那样做的。
KutuluMike 2012年

12

Windows采取这种方式的原因是因为DOS采取了这种方式。

在DOS中,每个驱动器都有自己的当前目录,并且该cd命令更改驱动器上的当前目录。如果这也恰好是当前驱动器,那么您的工作目录将随之更改。如果要更改当前驱动器,只需将驱动器号指定为命令。

请注意,Windows实际上不再能以这种方式工作了-您在任何时候都只有一个当前目录-但是命令外壳程序却竭尽全力地假装仍然存在每个驱动器的当前目录。大概是为了保留与现有DOS批处理文件的兼容性。

DOS以这种方式工作的原因可以追溯到DOS的最早版本以及之前的CP / M。血腥细节可以在Raymond Chen的博客上找到。


6

直截了当的答案是“因为它不是这样写的”。只需输入即可D:完成您想要的。

cd D:\somedir实际上,奇怪的是,将D:上的当前目录更改为\ data,但不会将当前命令提示符更改为D:。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.