文章目录
- abstract
- 1. **基本用法**
- CMD
- PowerShell
- 2. **驱动器切换**
- 3. **路径处理**
- 4. **目录切换的增强功能**
- 5. **返回上一个目录**
- 6. **别名和扩展支持**
- 总结👺
- 补充
abstract
Set-Location (Microsoft.PowerShell.Management) - PowerShell | Microsoft Learn
在 PowerShell 中,cd
命令和传统的命令提示符 (CMD) 中的 cd
命令在功能上非常相似,但也有一些关键的差异和增强功能。
1. 基本用法
在两种环境中,cd
命令都用于显示当前目录或更改当前工作目录。
CMD
cd
用于更改目录或显示当前目录。- 支持
/D
参数,用于在更改目录的同时切换驱动器。 - 文档
示例:
PowerShell
-
cd
是Set-Location
cmdlet 的别名,用于更改目录。 - 没有
/D
参数,因为 PowerShell 自动处理驱动器切换。
示例:
2. 驱动器切换
- CMD:
- 使用
/D
参数来同时切换驱动器和更改目录。 - 如果不使用
/D
参数,则只能更改当前驱动器的目录。
示例:
- PowerShell:
- 无需额外参数,
cd
自动处理驱动器切换。当你输入一个完整路径时(包括驱动器号),PowerShell 自动切换到相应驱动器。
示例:
3. 路径处理
- CMD:
- 需要显式处理带有空格的路径,通常需要用引号包裹路径。
- 命令扩展启用时,
cd
命令可以处理不带引号的空格路径。
示例:
- PowerShell:
- PowerShell 默认可以处理带空格的路径,使用引号或不使用引号都可以。
示例:
4. 目录切换的增强功能
- PowerShell:
- PowerShell 支持更多类型的“位置”或“驱动器”,例如注册表 (
HKLM:
)、证书存储 (Cert:
)、环境变量 (Env:
) 等。这些位置在cd
操作中与文件系统目录同样对待。 - 你可以使用
cd
命令切换到这些非文件系统的位置。
示例:
- CMD:
- CMD 只支持文件系统路径的目录切换,无法直接导航到其他类型的位置。
5. 返回上一个目录
- CMD:
- 没有内置的功能来快速返回上一个目录。
- PowerShell:
- PowerShell 提供
cd -
功能,可以快速返回上一个访问的目录。
示例:
6. 别名和扩展支持
- CMD:
-
cd
和chdir
是等效的命令。 - 支持命令扩展来处理大小写转换和路径中的空格。
- PowerShell:
-
cd
是Set-Location
的别名。 - PowerShell 提供强大的管道和脚本支持,可以轻松将
cd
命令嵌入到更复杂的命令和脚本中。
总结👺
功能 | CMD | PowerShell |
驱动器切换 | 需要 | 自动处理 |
路径处理 | 需要引号包裹空格路径 | 自动处理空格路径 |
非文件系统路径 | 不支持 | 支持 (注册表、证书、环境变量等) |
返回上一个目录 | 不支持 |
|
命令扩展 | 支持处理大小写和空格路径 | 自动处理,支持复杂脚本 |
PowerShell 的 cd
命令比 CMD 的 cd
命令更强大和灵活,尤其是在处理不同类型的驱动器、路径自动化、以及脚本集成方面。
补充
cmd
上的cd
切换目录不是那么好用,可以大致cd /d
和powershell的cd
等价(仅限于文件系统上跳转目录时,后者强大和灵活得多)- cmd的
/d
选项出了改变驱动器的当前目录之外,还可改变当前驱动器。例如要从C盘的某个路径切换到D盘的某个路径,就需要/d
,否则当前工作目录无法跨驱动器改变 cmd
的cd
的/d
选项必须跟在cd
命令后面,也就是说cd <path> /d
这种语句会报错,必须形如cd /d <path>
(开关/d
不能随意摆放)- 我们举一个例子来说明