这可能是一个愚蠢的问题,我想我已经在其他地方找到了答案......可能是路径问题,但是当我打开命令行并从中输入时C:\>
:
cd D:\
我无法进入 D 盘。即使我输入:
cd D:\<folder name>
它command.exe
会使用 Tab 键自动完成行,所以它知道我在哪里。它只是不会打印结果到屏幕上或真正让我到达那里。网络驱动器也存在这个问题。
现在,如果我像这样使用chdir
( ) 命令:cd
chdir D:
或者cd d:
我打印出了D:\
下面的命令但它仍然说我在C:\
。
我感觉我缺少了一些简单的东西。
答案1
回到 DOS 时代,每个驱动器都有一个单独的“当前目录”。 cd D:\foldername
将 D:的当前目录更改为指定的文件夹名称,但不会改变您仍在该C:
驱动器上工作的事实。
你想要的很简单:
D:
在这里您可以看到“为每个驱动器单独设置当前目录”是如何工作的:
C:\Users\coneslayer>e:
E:\>c:
C:\Users\coneslayer>cd e:\software
C:\Users\coneslayer>e:
e:\Software>
答案2
它做过工作,因为命令就是设计来工作的。
你根本就不知道它实际上是如何工作的。
您没有使用 Unix 或 Linux shell 程序。Microsoftcd
命令解释器中的命令与此类 shell 中的命令不同cd
。它的行为略有不同。特别是,它并不总是改变目录。在 Unix 和 Linux shell 中,cd
仅设置工作目录。在 Microsoft 的命令解释器中,cd
有时会查询它。没有单独的pwd
命令,因此cd
有两个作业。
如果你不给它任何参数,或者只给它一个驱动器号和冒号而没有路径的参数,那么它报告当前目录而不是改变它。如果您不提供任何参数,它将报告命令解释器进程当前驱动器的当前目录。如果您只提供驱动器号和冒号作为参数,它将报告命令解释器进程的该驱动器的当前目录。每个驱动器在命令解释器中都有自己的当前目录。(这是 Microsoft 和其他几家供应商的各种编程语言实现的运行时库所维护的虚构内容。Win32 本身不以这种方式工作。)
因此,当您将其d:
作为参数传递时,它会向您报告命令解释器进程在驱动器 D 上的当前目录,该目录恰好是D:\
。如果您没有给它任何参数,它就会C:\
向您报告。
如果你想要cd
命令始终处于设置模式,永远不要处于查询模式您需要/D
向其中添加选项。这会强制命令始终处于设置模式,并对其进行扩展,以便它更改当前驱动器以及更改驱动器的当前目录。(换句话说,它的工作方式更像底层 Win32 API 实际的工作方式。)
例如,命令行
光盘/dd:将把目录更改为驱动器 D 上的当前目录,并将当前驱动器更改为驱动器 D。
如果你想改变命令解释器进程的当前驱动器,则该cd
命令不是解决问题的方法。你只需输入驱动器号和冒号即可:
d:
进一步阅读
答案3
恐怕这是不正确的。从 DOS 时代开始确实如此,但 Windows NT 及更高版本中的命令行不是 DOS。在当今每个人都使用的命令行中,您有 /D 开关。/d 开关将更改指定驱动器的当前目录并更改到该目录。/d 开关必须在路径之前指定。例如:
C:\> cd /d D:\foo\bar\
D:\foo\bar\>
答案4
使用
cd /D D:
来执行此操作。您还可以指定路径。