Windows系统Hosts文件中无#开头的缩进注释是否符合规范?
Windows系统Hosts文件中无#开头的缩进注释是否符合规范?
嘿,这个问题问得挺细致的!我来给你梳理清楚~
首先先还原你看到的Hosts文件片段:
# Obviously a comment line that starts with # Is also a comment, but line starts with two tabs Possibly is treated as a comment continuation??
根据微软官方文档以及维基对Hosts文件的标准定义,规范是这样的:
Hosts文件包含由IP地址开头,后跟一个或多个主机名的文本行,字段间用空白字符分隔(历史上常用制表符,空格也可以)。注释行必须以哈希字符(#)作为行首,完全空白的行会被忽略。
从这个标准来看,那些以制表符或空格开头、没有#标识的行并不符合官方认可的注释格式,严格来说属于格式有误的内容。
不过在Windows系统的实际处理中,这类无法被解析为有效IP-主机名映射的行,通常会被Hosts解析器当作无效行直接忽略,所以看起来像是被当作了注释,但这并不是什么“注释续行”的特殊规则——官方从来没有承认过这种写法。
如果想要保证你的Hosts文件在所有场景下(比如某些严格遵循规范的第三方解析工具)都能正常工作,最稳妥的做法还是把这些行改成以#开头的正规注释格式哦。
备注:内容来源于stack exchange,提问作者Peter M




