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

Dio*_*ogo 20 windows cd windows-7 command-line prompt

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

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

在此处输入图片说明

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

jft*_*uga 33

尝试:

cd /d d:
Run Code Online (Sandbox Code Playgroud)

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

  • 这是“为什么寡妇以这种方式工作”的真正答案:因为 DOS 就是这样做的。 (4认同)

Kut*_*ike 13

Windows 这样做的原因是因为 DOS 这样做。

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

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

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


uSl*_*ckr 7

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

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