延续字符后不允许注释?

时间:2015-04-16 02:43:11

标签: powershell powershell-v3.0

以下工作正常:

if (  $a -eq 2 `
  -or $a -eq 3 )
  { write-host "Hi" }

但不是以下内容:

if (  $a -eq 2 ` #...
  -or $a -eq 3 )
  { write-host "Hi" }

为什么?

这两个都没有:

if (  $a -eq 2 
  -or $a -eq 3 )
  { write-host "Hi" }

1 个答案:

答案 0 :(得分:4)

原因是你在使用反引号字符时告诉powershell转义下一个字符。如果用作行的最后一个字符,它可以用作行继续符,因为它然后转义回车符并将其从逻辑行尾标记处转换并将其转换为文字回车符,不再执行任何操作但移到文本到下一行的开头。如果任何字符放在行后面,而不仅仅是注释,它将无法充当行继续符。你甚至不能在它之后有空格,以便它可以作为续行字符。