为什么 Windows 命令行(cmd.exe)将“cd\”解释为有效命令?

为什么 Windows 命令行(cmd.exe)将“cd\”解释为有效命令?

从标准 Windows 命令行 (cmd.exe),可以使用命令 cd\ 跳转到当前驱动器的根目录(cd 后跟反斜杠,中间没有空格)。

使用 PowerShell,我们可以为 cmdlet 定义字符串别名,但命令 cd\ 在标准 cmd.exe 中运行良好,因此不是 PowerShell 别名。

这是否仅仅是 cd 命令的更标准用法的内置快捷方式,您可以在其中将目标目录指定为命令本身的参数(按照预期在命令和参数之间有一个空格)?

答案1

使用 PowerShell,我们可以为 cmdlet 定义字符串别名,但命令 cd\ 在标准 cmd.exe 中运行良好,因此不是 PowerShell 别名。

仅仅因为它是 CMD 中的标准形式并不意味着它不是 PS 中的别名。事实上,CMD 中几乎所有在 PS 中也能使用的“标准命令”都是别名。CD 是 的别名set-location

使用命令get-alias cd来学习这个和其他令人吃惊的技巧!

为什么 CD\是一个有效的命令,这不是超级用户可以回答的问题。

更新

CMD 不需要加载 PS 即可执行任何操作。

读了你的评论,我觉得你需要认识到的第一件事是,早在 PS 出现之前,CD\ 在 CMD 中的行为就是如此,所以忘掉 PS 吧。把 PS 混入其中会带来混乱。你忘记 PS 了吗?(正确答案是“是”)好的。

正如 Lưu Vĩnh Phúc 在他的评论中提到的,命令字符串可以使用各种方法并出于各种原因进行转义。为什么他们这样做取决于单个命令解析器、主机系统、特定命令、开发所有这些的人员或团队或组织,以及可能还有其他原因。

相关内容