为什么“cd D:”不会将命令上下文更改为 D:?

为什么“cd D:”不会将命令上下文更改为 D:?

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

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

在此处输入图片描述

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

答案1

尝试:

cd /d d:

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

答案2

Windows 如此行为的原因是 DOS 如此行为。

在 DOS 中,每个驱动器都有自己的当前目录,该cd命令会更改驱动器上的当前目录。如​​果该目录恰好也是当前驾驶,那么您的工作目录也会随之改变。如果您想更改当前驱动器,只需将驱动器号指定为命令即可。

注意到 Windows 实际上并没有工作这样就不行了——任何时候你都只有一个当前目录——但命令 shell 会竭尽全力假装每个驱动器仍然有当前目录。据推测这是为了保持与现有 DOS 批处理文件的兼容性。

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

答案3

直接的答案是“因为它不是按照这种方式编写的”。只需输入D:即可完成您想要的操作。

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

相关内容