每次我想在 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:。