每次我想在 Windows 命令提示字元上將目錄上下文更改為另一個磁碟機(D、E、F 或其他...)時,我必須使用"Drive letter":\
命令來實際更改它。如果我嘗試用“cd 指令”對我來說cd H:\
,只是 echo H:\ ,什麼都不做:
這種行為有什麼原因嗎?我的意思是,不應該cd command
努力做到這一點嗎?為什麼不呢?
答案1
嘗試:
cd /d d:
/d
還將切換驅動器號和目錄,有關其他信息,請參閱cd /?
答案2
Windows 之所以如此,是因為 DOS 也是如此。
在 DOS 中,每個磁碟機都有自己的目前目錄,該cd
指令會變更磁碟機上的目前目錄。如果這也恰好是當前的駕駛,那麼你的工作目錄也會跟著改變。如果您想變更目前驅動器,只需將驅動器號碼指定為命令即可。
請注意,Windows 實際上並不工作現在就這樣了——任何時候你都只有一個當前目錄——但是命令 shell 會竭盡全力假裝仍然存在每個驅動器的當前目錄。大概這是為了保持與現有 DOS 批次檔的相容性。
DOS 以這種方式運作的原因可以追溯到 DOS 的最早版本以及先前的 CP/M。血淋淋的細節可以在雷蒙德陳的博客。
答案3
直接的答案是「因為它不是為了那樣工作而寫的」。只需輸入D:
即可完成您想要的操作。
奇怪的是,輸入cd D:\somedir
實際上會將 D: 上的當前目錄更改為 \data,但不會將當前命令提示字元更改為 D:。