如何在CMD中进入子目录?

6
如何在不指定完整路径的情况下进入子目录? 当我在以下目录中时:
C:/users/USERNAME/desktop/project/build/
如何导航到该页面?
C:/users/USERNAME/desktop/project/build/directory 1/

我尝试了

cd /directory 1

但这会导致

系统找不到指定的路径。


我想使用像..命令一样简单的东西,它可以在不指定整个路径的情况下返回上一级目录。是否有类似的命令可以进入子目录?


2
是的。只需使用名称而不是斜杠开头,例如 cd "Directory 1"。您需要转义此内容,因为名称中有空格。 - Larce
1个回答

阿里云服务器只需要99元/年,新老用户同享,点击查看详情
12

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

为了向后兼容,例如使用相对路径带着/的C/C++/C#的#include指令,Windows也支持使用/作为目录分隔符的路径,并在将字符串解释为包含路径的文件/文件夹名时自动将它们转换成\。 这是通过访问存储设备文件系统的Windows可执行文件所使用的文件IO函数完成的。

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

因此,执行cd /Directory 1与执行cd /D irectory 1相同,这意味着命令CD会将目录参数字符串的开始处的/D视为可选项/D,并将除双引号括起来的其余目录参数字符串解释为更改当前目录的子目录名称。您计算机上不存在子目录irectory 1

如果目录名以字母D以外的任何其他字符开头,并且在目录参数字符串的开始处使用/而不是\,例如使用cd /Folder 1,则会执行cd "C:\Folder 1",其中驱动器C:是当前驱动器。

有三种类型的相对路径:

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

.\..\ 可以在目录分隔符后的路径中多次使用,Windows 会自动将其解析为绝对路径。

因此,正确的做法是使用cd "Directory 1",或者不建议使用cd Directory 1

CD 命令的帮助输出(运行cd /?)解释了该命令不需要像通常需要的那样用双引号将路径括起来,因为空格通常被解释为参数之间的分隔符。但最好始终将路径用双引号括起来,因为其他一些字符需要用双引号将路径括起来才能解释(几乎)所有路径中的字符为字面字符。

例如,一个目录名为Test & Doc。使用cd Test & Doc时,Windows 命令处理器执行cd Test,然后尝试在当前目录或任何列在环境变量PATH中的目录中查找具有文件扩展名列在环境变量PATHEXT中的DocDoc.*文件扩展名的可执行文件或脚本,因为&符号被解释为执行单个命令行中的多个命令的无条件AND运算符。但是,使用cd "Test & Doc"时,整个双引号字符串被 Windows 命令处理器解释为要更改到的目录名称。

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

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

更多关于Windows命令的详细信息可在以下网站中找到:

微软有关文件、路径和命名空间的文档提供了更多关于文件名以及路径在Windows内核中如何解释的详细信息。所有为在Windows上执行的应用程序或脚本编写程序或脚本代码的人都应该至少从头到尾阅读一次此文档页面。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,