為什麼「cd D:」不將指令上下文改為 D:?

為什麼「cd D:」不將指令上下文改為 D:?

可能的重複:
在 Windows 命令列中使用 cd 指令,無法導覽至 D:\

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

相關內容