如何去CMD的子目录?

可以说我在命令提示符窗口中使用命令cd进入以下path。

cd C:/users/USERNAME/desktop/project/build/

例如,在这个目录里我们有如下的结构:

  • C:/用户/用户名/桌面/工程/build造/
    • 目录1
    • 目录2
    • 目录3
    • 目录4
    • 目录5

如何用一个简单的命令进入其中一个子目录?

我试图用cd /Directory 1 。 但是,我得到这个错误:

该系统找不到指定的path。

如果我想从Directory 1回到C:/users/USERNAME/desktop/project/build/我可以简单地使用cd ..

有没有类似的改变到一个子目录?

在Windows上,目录分隔符是\ …反斜杠字符。 斜杠字符/在Windows上用于可执行文件/脚本的参数/选项/参数。

出于兼容性原因,例如C / C ++ / C#中的#include指令,以及使用/作为目录分隔符的相对路径,Windows还接受带有/路径,并且在将某个字符串解释为具有路径的文件/文件夹名称时自动将它们转换为\

以反斜杠开始的路径是相对于当前驱动器的根的路径。

出于这个原因, cd /Directory 1被执行为cd \Directory 1 ,导致执行cd "C:\Directory 1"C:是当前驱动器。 该目录在你的机器上不存在。

有三种相对路径:

  1. 如果路径以.\或目录名开头,则路径相对于当前目录
  2. 如果路径以..\开头,路径相对于当前目录的父目录
  3. 如果路径以\开始,则路径相对于当前驱动器的根目录

.\..\也可以在多次使用目录分隔符后的路径中的任意位置使用,并且Windows会自动将路径解析为绝对路径。

所以正确的将使用cd "Directory 1" ,或不推荐cd Directory 1

运行cd /?命令CD输出的帮助 解释说,命令CD不需要像通常所需的那样用双引号括住一个或多个空格的路径,因为空格通常被解释为参数之间的分隔符以传递给命令,可执行文件或脚本。

不过最好的做法是始终用双引号将路径括起来,因为其他字符需要将路径用双引号括起来,将路径中的所有字符都解释为文字字符。

例如一个目录名为Test & Doc 。 使用cd Test & Doc Windows命令解释程序执行cd Test ,然后尝试查找具有doc。*的文件扩展名的可执行文件或脚本,其文件扩展名列在环境变量PATHEXT当前目录或环境变量PATH列出的任何目录中,因为&符号被解释为AND运算符,用于在单个命令行上执行多个命令。 但是在使用cd "Test & Doc" ,整个双引号字符串被解释为由Windows命令解释器转换的目录的名称。

顺便说一句:所有内部(包括在cmd.exe … Windows命令行解释器)和外部命令(默认安装在%SystemRoot%\ System32中的可执行文件)可以用参数/?启动/? 在命令提示符窗口中显示此命令的帮助。

  • cd /?
  • cmd /?
  • pushd /?
  • popd /?

有关Windows命令的更多详细信息,请参见

  • 微软的命令行参考
  • SS64.com – Windows CMD命令行的AZ索引