为什么Windows环境变量名称使用特殊的转义字符?

5

我很好奇为什么在Windows环境变量名中使用^字符来转义特殊字符<>|&^,而不是通常用于转义特殊字符的\字符。请注意,我知道这可能没有理由,但如果有理由,我会很感兴趣听到它。

1个回答

5

'\'通常用于转义Unix系统(或C语言或受C语言启发的任何语言)中的特殊字符。这很方便,因为在这些系统/语言中,该字符几乎是唯一使用的。

另一方面,Windows来自CP/M遗产,它使用'\'作为路径分隔符。(编辑:不完全正确,请参见下面的评论。)每次出现时都必须转义路径分隔符有点麻烦,我猜(!)这就是他们选择不同转义字符的原因。


CP/M没有目录,因此不需要考虑使用什么作为路径分隔符的问题。它在命令行选项中使用“/”,MS-DOS 1.0也是如此。当MS-DOS 2.0添加对目录树的支持时,向后兼容性约束阻止使用“/”作为路径分隔符,所以选择了“\”。 - dan04
4
自从那时起,我们一直在受苦。 - siride
1
特别是如果你不是美国人,那么你必须使用 shiftaltgr 来输入 /\\,或者当键盘映射没有正确设置时(例如在某些Linux救援控制台中)你根本无法输入。当你应该输入一些不存在于你的键盘上的字符时,这会非常有趣。 - Damon

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