在 Windows 命令行中使用 cd 命令,无法导航到 D:\

nic*_*ius 273 windows cd path command-line

这可能是一个愚蠢的问题,我想我已经在别处寻找答案......可能是路径问题,但是当我打开命令行并从以下位置键入时C:\>

cd D:\
Run Code Online (Sandbox Code Playgroud)

我无法进入 D 盘。即使我输入:

cd D:\<folder name>
Run Code Online (Sandbox Code Playgroud)

command.exe系统会自动完成使用Tab键行,因此它知道我在哪里。它只是不会打印以筛选结果或实际上让我到达那里。网络驱动器也存在此问题。

现在,如果我像这样使用chdir( cd) 命令:

chdir D: 或者 cd d:

我从D:\命令下面打印出来,但它仍然说我在C:\.

我觉得我错过了一些简单的东西。

con*_*yer 390

回到 DOS 时代,每个驱动器都有一个单独的“当前目录”。 cd D:\foldername将 D: 的当前目录更改为指定的文件夹名称,但不会改变您仍在C:驱动器上工作的事实。

你想要的很简单:

D:
Run Code Online (Sandbox Code Playgroud)

在这里您可以看到“每个驱动器的单独当前目录”是如何工作的:

C:\Users\coneslayer>e:

E:\>c:

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

C:\Users\coneslayer>e:

e:\Software>
Run Code Online (Sandbox Code Playgroud)

  • 在“西方最快的枪”的情况下,获胜者是做出最好解释的人。+1,我删除了类似的答案。 (23认同)
  • @barlop `cd E:\software` 什么也不做。它将E分区**的当前目录**更改为`software`文件夹,这就是最终使用`E:`切换到E分区时的演示。不过 cd /d 的好建议。 (7认同)
  • -1 a) 你没有指出 `cd e:\software` 行没有做任何事情。好像你在那里卡了一个幻影 CD 命令 为什么?让他认为你在使用 CD 而你没有使用?和 b) 你怎么能不提到`/d` 启用 CD 到不同驱动器上的特定目录他确实说过**使用 cd 命令** 所以虽然你指出它如何在没有CD 命令`d:&lt;ENTER&gt;`,你应该也提到过CD 命令`cd /dd:` 或`cd /dd:\blah` (4认同)
  • 我的也删了 不需要额外的混乱。 (2认同)

Jde*_*eBP 83

确实有效,因为该命令可以正常工作。

你根本不知道它实际上应该如何工作。

您没有使用 Unix 或 Linux shell 程序。在cd微软的命令解释命令并不会像cd在这种炮弹的命令去做。它的行为有些不同。特别是,它并不总是改变 directory。在 Unix 和 Linux shell 中,cd只设置工作目录。在微软的命令解释器中,cd有时会查询它。没有单独的pwd命令,cd两个工作也是如此。

如果你不给它任何参数,或者参数只是一个驱动器号和一个没有路径的冒号,那么它会报告当前目录而不是改变它。如果不给它任何参数,它会报告命令解释器进程当前驱动器的当前目录。如果你只给它一个驱动器号和一个冒号作为参数,它会报告命令解释器进程的该驱动器的当前目录。每个驱动器在命令解释器中都有自己的当前目录。(这是由 Microsoft 和其他几个供应商的各种编程语言实现的运行时库维护的虚构。Win32 本身不能以这种方式工作。)

因此,当您将其d:作为参数提供时,它会将驱动器 D 上的命令解释器进程的当前目录报告给您,恰好是D:\. 如果你根本不给它任何参数,它就会C:\向你报告。

如果您希望cd命令始终处于设置模式并且永远不会处于查询模式,则需要向其添加/D选项。这会强制命令始终处于设置模式,并对其进行扩展,以便更改当前驱动器以及更改驱动器的当前目录。(换句话说,它的工作原理更像底层的 Win32 API。)

因此,例如,命令行

cd / dd:
将目录更改为驱动器 D 上的当前目录,并将当前驱动器更改为驱动器 D。

如果你想改变命令解释器进程的当前驱动器,否则cd命令不是方法。您只需键入驱动器号和冒号即可:

d:

进一步阅读

  • JP 软件 (2011)。CD/CHDIR TCC 在线帮助。
  • 微软公司(2001 年)。切迪尔 (CD)。TechNet Windows XP 命令行参考 A–Z。

  • [Raymond Chen 的相关帖子](http://blogs.msdn.com/b/oldnewthing/archive/2010/10/11/10073890.aspx)。 (6认同)
  • 没有,我们没有。在这里谈论分区而不是驱动器是错误的,“用户未知”。首先,分区与卷不同,驱动器号映射到卷,而不是分区。当我们在这个抽象级别上讨论时,_驱动器字母_和_当前驱动器_是常规术语,如此处使用的那样,在指示的进一步阅读中,甚至在`cd /?`帮助文本中。 (6认同)
  • 没有任何内容与上面写的内容相矛盾,`sinni800`(除了您错误地获取更改当前驱动器的语法,即,但我会忽略这一点)。我没有讨论当一个人在参数中提供路径名时会发生什么,因为(a)这不是问题的内容,(b)它在进一步阅读中。 (5认同)
  • 不完全正确。如果你执行 `cd d:\`,它会改变 `d:` 上的工作目录。如果您之后执行 `d:\ `,它将在 `d:\ `。如果你做 `cd d:\something\something` 一开始什么都不会发生。但是如果你之后再做`d:\`,你的路径将是`d:\something\something"`! (3认同)
  • 我已经使用这个命令至少 20 年了,从来不知道这一点。 (2认同)

Mul*_* IT 64

恐怕这是不正确的。从 DOS 时代就是如此,但 Windows NT 及更高版本中的命令行不是 DOS。在今天每个人都使用的命令行中,您有 /D 开关。/d 开关将更改指定驱动器的当前目录并更改为该目录。/d 开关必须在路径之前指定。例如:

C:\> cd /d D:\foo\bar\
D:\foo\bar\>
Run Code Online (Sandbox Code Playgroud)

windows命令提示符cd

  • +1 因为我学到了一些新东西,但我不认为我写的任何东西都是不正确的。 (4认同)
  • Multiverse IT,您的答案也是正确的,但是 coneslayer 并没有错。感谢您的努力。我在这个问题上学到了两个很棒的技巧。 (3认同)
  • 从我的角度来看,“你想要的很简单...... D:”是不正确的。是的,它有效并且是实现目标的有效方法,但严格来说,这不是他应该想要的。此外,注释的措辞方式暗示您不能使用 CD 来执行此操作 - 这种含义是不正确的。 (2认同)

IUn*_*own 21

CD代表ç焊割d irectory,而不是更改驱动器。所以它不会变成 D: 那样。为此,您只需输入驱动器号

例如

d:

  • cd /DD:更改驱动器和目录... (16认同)
  • @userunknown 在设计 shell 的 Dos 1.0 时代,只有软盘,据我所知无法分区。最初的硬盘支持仅适用于驱动器上的主(第一个)分区。扩展分区支持直到后来才添加。 (2认同)

And*_*ert 9

cmd.exe 中的工作目录是在volume-by-volume基础上维护的;在工作目录C:驱动器与用于工作目录不同的 D:驱动器。

当您仅将驱动器号传递给 时cd,它将打印指定驱动器的工作目录。

在您的情况下,D:驱动器的工作目录是卷根目录本身,D:\.

要将卷从 更改C:D:只需输入驱动器号:

C:\>D:
D:\>
Run Code Online (Sandbox Code Playgroud)

  • cd /DD:更改驱动器和目录... (2认同)

Mic*_* S. 9

cd /D D:
Run Code Online (Sandbox Code Playgroud)

去做这个。您也可以指定路径。


小智 5

如果您想在 DOS 命令提示符下更改驱动器,那么您只需编写:

[Drive Letter]:
Run Code Online (Sandbox Code Playgroud)

例如,如果要移动到 D:\ 驱动器,则只需在命令提示符中键入以下内容:

D:
Run Code Online (Sandbox Code Playgroud)