1. 程式人生 > 實用技巧 >MS-DOS 中 CD 命令的執行邏輯(為什麼有時候看起來沒有起作用)

MS-DOS 中 CD 命令的執行邏輯(為什麼有時候看起來沒有起作用)

MS-DOS 中 CD 命令的用法

CD 命令可以改變我們當前的工作目錄,直接輸入 CD 不加引數的話可以顯示當前的目錄。輸入 cd /? 可以看到關於 CD 命令的用法幫助,其他 DOS 命令也類似,下面是 CD 命令的幫助說明:

顯示當前目錄名或改變當前目錄。

CHDIR [/D] [drive:][path]
CHDIR [..]
CD [/D] [drive:][path]
CD [..]

.. 指定要改成父目錄。

鍵入 CD drive: 顯示指定驅動器中的當前目錄。
不帶引數只鍵入 CD,則顯示當前驅動器和目錄。 # 注意,這裡說顯示驅動器和目錄,二者分開說了

使用 /D 開關,除了改變驅動器的當前目錄之外,
還可改變當前驅動器。
...(後面的省略)

可以看到 CD 命令就是直接在後面加路徑,例如,要進入 Download 目錄:

C:\Users\AULA>  # 這是當前的工作目錄
C:\Users\AULA>cd Downloads
C:\Users\AULA\Downloads>

CD 命令為什麼會看起來沒有起作用

那麼,如果我們要進入 D 盤的一個目錄,例如:D:\BilibiliDownload,那麼我們輸入:

C:\Users\AULA>cd d:BilibiliDownload  # 子目錄不用加斜槓 \ ,按 tab 鍵可以自動補全
C:\Users\AULA
>

結果只是輸出了一個空行,貌似 CD 命令並沒有起到切換目錄的作用。事實上,CD 命令的作用是用於切換目錄,而在 MS-DOS 中,我們的路徑是包含驅動器號與目錄的,二者是不同的,這也就是在 CD 命令的幫助中為什麼要將二者分開講的原因。

上面這條命令執行後也沒有出現錯誤,事實上它也是起了作用的。這裡有兩個不同的地方:驅動器的當前目錄和我們的工作目錄。在 MS-DOS 中,將每一個磁碟驅動器都視為一個單獨的目錄樹,每一個驅動器都可以有一個當前目錄,而工作目錄就是 CMD 視窗左側的字首 C:\Users\AULA>

可以輸入cd drive: 檢視對應驅動器的當前目錄:

C:\Users\AULA>cd d:
D:\BilibiliDownload  # 驅動器 D: 的當前目錄

C:\Users\AULA>cd c:
C:\Users\AULA  # 驅動器 C: 的當前目錄

我們之前的那條命令改變了驅動器 D: 的當前目錄,並沒有改變我們的工作目錄,因為 CD 命令不能跨驅動器切換。可以直接先輸入 D: 切換驅動器後,再用 CD 命令進入相應的目錄。或者新增引數 /D 強制切換工作目錄:

C:\Users\AULA>cd /d d:\BilibiliDownload

d:\BilibiliDownload>

現在工作路徑已經成功切換到了 D 盤。

總結

在 MS-DOS 中,CD 命令預設是在同一個目錄樹中切換工作路徑,Windows 中每一個驅動器都是一個單獨的目錄樹,每個驅動器都有一個當前目錄。直接輸入路徑跨驅動器訪問,只會改變對應驅動器的當前目錄,不會更改 CMD 的工作目錄,需要新增引數 /d 強制切換。