題 在Windows命令行中使用cd命令,無法導航到D:\


這可能是一個愚蠢的問題,我想我已經在其他地方尋找答案......可能是一個路徑問題,但當我打開命令行並輸入 C:\>

cd D:\

我無法進入D盤。即使我鍵入:

cd D:\<folder name>

command.exe 將使用tab鍵自動完成該行,因此它知道我在哪裡。它只是不打印來篩選結果或實際上讓我在那裡。網絡驅動器也存在此問題。

現在,如果我使用了 chdir (cd)這樣的命令:

chdir D: 要么 cd d:

我得到了打印出來的 D:\ 在命令下面,但它仍然說我在 C:\

我覺得我錯過了一些簡單的事情。


196
2018-04-27 15:35


起源


我一直在用 pushd 代替 cd 幾乎無處不在,因為它在這種情況下表現得更好。 - Goyuix
看到這個答案“cd / d D:“ superuser.com/a/135239/78897 - Pacerier
試試這個:cd / d d: - DevWL


答案:


回到DOS的時代,每個驅動器都有一個單獨的“當前目錄”。 cd D:\foldername 將D:當前目錄更改為指定的foldername,但不會改變您仍在使用的事實 C: 駕駛。

你想要的很簡單:

D:

在這裡,您可以看到“每個驅動器的單獨當前目錄”是如何工作的:

C:\Users\coneslayer>e:

E:\>c:

C:\Users\coneslayer>cd e:\software

C:\Users\coneslayer>e:

e:\Software>

283
2018-04-27 15:38



在“西部最快的槍”的情況下,獲勝者是最好的解釋者。 +1,我刪除了我的類似答案。 - Gnoupi
也刪除了我的。不需要額外的混亂。 - th3dude
-1 a)你還沒有指出 cd e:\software 線沒做什麼。好像你在那里卡住幻影CD命令為什麼?讓他覺得你不是在使用CD嗎?和b)你怎麼能不提 /d啟用CD到其他驅動器上的特定目錄他確實說過 使用cd命令 所以儘管你指出它如何在沒有CD命令的情況下完成它是好的 d:<ENTER>,你也應該提到CD命令 cd /d d: 要么 cd /d d:\blah - barlop
@barlop cd E:\software 什麼也不做。它會更改當前目錄 的分區 到了 software 文件夾,這是最終切換到E分區時所展示的內容 E:。雖然cd / d很好的建議。 - miyalys
@miyalys有趣而且很棒 - barlop


沒有 工作,因為該命令旨在工作。

你根本不知道它是如何工作的。

你沒有使用Unix或Linux shell程序。該 cd Microsoft的命令解釋器中的命令不像 cd 這樣的shell中的命令。它的行為有所不同。特別是, 它並不總是改變目錄。在Unix和Linux shell中, cd 只設置工作目錄。在Microsoft的命令解釋器中, cd 有時查詢它。沒有單獨的 pwd 命令,所以 cd 做兩份工作。

如果你沒有給它參數,或者只是一個驅動器號和一個沒有路徑的冒號的參數,那麼 它報告當前目錄而不是更改它。如果您沒有給它參數,它會報告命令解釋器進程的當前驅動器的當前目錄。如果只給它一個驅動器號和一個冒號作為參數,它會報告命令解釋器進程'該驅動器的當前目錄。每個驅動器在命令解釋器中都有自己的當前目錄。 (這是微軟和其他幾家供應商的各種編程語言實現的運行時庫維護的虛構.Win32本身不能這樣工作。)

所以,當你給它 d: 作為一個參數,它報告了命令解釋器進程'驅動器D上的當前目錄給你,這恰好是 D:\。如果你沒有給它任何參數,它會報告 C:\ 給你。

如果你想要的話 cd 命令 始終處於設置模式,永遠不會處於查詢模式 你需要添加 /D 選項。這會強制命令始終處於設置模式,並且還會對其進行擴展,以便更改當前驅動器以及更改驅動器的當前目錄。 (換句話說,它更像底層的Win32 API實際上。)

因此,例如,命令行

cd / d d:
 將目錄更改為驅動器D上的當前目錄,並將當前驅動器更改為驅動器D.

如果你想更改命令解釋器進程'當前驅動器,否則, cd 命令不是這樣的。您只需鍵入驅動器號和冒號即可:

d:

進一步閱讀

  • JP Software(2011)。 CD / CHDIR TCC在線幫助。
  • 微軟公司(2001年)。 Chdir(CD)。 TechNet Windows XP命令行參考A-Z。

74
2018-01-19 14:17



相關帖子Raymond Chen。 - Daniel Beck♦
不完全正確。如果你這樣做 cd d:\  它改變了工作目錄 d:。如果你這樣做 d:\  之後它會在 d:\ 。如果你這樣做 cd d:\something\something 一開始什麼都不會發生。但如果你這樣做 d:\  之後再次,你的道路將是 d:\something\something"! - sinni800
這些都與上面所寫的內容沒有任何矛盾, sinni800 (除了你得到改變當前驅動器的語法錯誤,也就是說,但我會忽略它)。我沒有討論當一個人在一個論證中提供一個路徑名時會發生什麼,因為(a)這不是問題所在,以及(b)它是在進一步閱讀中。 - JdeBP
沒有,我們沒有。在這裡談論分區而不是驅動器是錯誤的, user unknown。對於初學者,分區與卷不同,驅動器號映射到卷,而不是分區。當一個人在這個抽象層面上談論時, 驅動器號 和 當前的驅動器 這裡使用的是常規術語,在所示的進一步閱讀中,甚至是在 cd /? 幫助文本。 - JdeBP
我已經使用這個命令至少20年,從來不知道這一點。 - Chris Ballance


害怕這是不正確的。從DOS時代開始就是如此,但Windows NT及更高版本中的命令行不是DOS。在今天每個人都使用的命令行中,您有/ D開關。 / d開關將更改指定驅動器的當前目錄並更改為該目錄。必須在路徑之前指定/ d開關。例如:

C:\> cd /d D:\foo\bar\
D:\foo\bar\>

windows command prompt cd


45
2018-04-27 16:28



+1因為我學到了新東西,但我認為我寫的任何內容都不正確。 - coneslayer
你的答案也是正確的,Multiverse IT,但是coneslayer並不正確。謝謝你的努力。我在這個問題上學到了兩個很棒的技巧。 - nicorellius
從我的角度來看“你想要的很簡單...... D:”是不正確的。是的它有效並且是實現目標的有效方法,但嚴格來說並不是他想要的。此外,評論措辭的方式暗示您不能使用CD來執行此操作 - 這意味著不正確。 - Multiverse IT
他的主要問題是“我無法進入D盤。”因此,另一個答案是正確的。您的解決方案只需少一步(這很好)。它不會使另一個不正確。 - Gnoupi
嗯,“他應該想要什麼。”聽起來相當假定;-) - nicorellius


光盤 代表 C焊割 directory,而不是改變驅動器。所以它不會改變為D:就像那樣。要實現這一點,您只需輸入驅動器號即可

例如

d:


19
2018-01-19 07:58



cd / D D:更改驅動器和目錄...... - Michael S.
但是d:是一個分區,而不是一個驅動器。 - user unknown
@userunknown在設計shell的Dos 1.0時代,只有軟槃無法對AFAIK進行分區。初始硬盤驅動器支持僅適用於驅動器上的主(第一)分區。直到稍後才添加擴展分區支持。 - Dan Neely
我沒有看到MS-DOS 1.0標籤,也沒有提到1.0。也許您無法使用MS-DOS程序對驅動器進行分區,但您可以在分區驅動器上安裝MS-DOS。我猜MS-DOS雖然沒有支持,但標籤就在那裡,因為許多用戶認為cmd.exe和MS-DOS意味著相同,這是另一個要解決的錯誤。 Apropos:MS-DOS 1.0從未發布過。 - user unknown
@userunknown設計決策可以追溯到DOS的初始版本。改變行為會打破舊程序(參見下面的Daniel Beck的評論)。 PS;根據維基百科MS DOS 1.x發布。 - Dan Neely


cmd.exe中的工作目錄在a上維護 volume-by-volume 基礎;工作目錄 C: 驅動器不同於工作目錄 D: 駕駛。

當你只通過一封驅動器號 cd,它將打印指定驅動器的工作目錄。

在你的情況下,工作目錄 D: drive是卷根本身, D:\

要更改卷 C: 至 D: 只需輸入驅動器號:

C:\>D:
D:\>

9
2018-01-19 08:12



cd / D D:更改驅動器和目錄...... - Michael S.
分區映射到驅動器號,並且幾乎與驅動器相同。您還可以將目錄或共享映射到驅動器,它們的行為相同。 - Marty Fried


使用 cd / D D: 去做這個。您也可以指定路徑。


8
2018-01-19 13:33





如果要在DOS命令提示符下更改驅動器,則只需編寫:

[Drive Letter]:

例如,如果要移動到D:\驅動器,則只需鍵入以下內容即可 在命令提示符中:

D:

5
2018-01-19 15:52



您使用更改分區 [Drive Letter]:,相信我或測試它! - user unknown
哇哇,這讓事情變得更容易了。我總是忘記了 /d 所以這使得切換速度更快。 - Mateen Ulhaq


pushd 即使您需要去驅動子目錄,例如 D:\Tests\Logs

只需使用它:

pushd D:\Tests\Logs

如果要返回上一個目錄使用 popd

C:\Users>pushd D:\Tests\Logs
D:\Tests\Logs>popd
C:\Users>

2
2017-07-27 21:59





當您要在工具欄中搜索選項並蒐索cmd或選擇Windows所有應用程序選擇命令提示符時,它將轉到其他一些命令提示符。 而是嘗試按下Windows按鈕+ R並蒐索到C:>驅動器所需的cmd。從那裡你可以導航到D:>或任何你需要的地方


0
2018-06-23 22:24