我不明白为什么这个脚本中的字符串连接存在差异.我真的不明白这个空白来自哪里?你能告诉我什么是错的吗?
$table = @{
"aaa"=1
}
$x = "qqq"
$y = "rrr"
$table.GetEnumerator() | ForEach-Object {
Write-Host $_.Key$x #THIS PRINTS "aaa qqq"
}
Write-Host $x$y #THIS PRINTS : "qqqrrr"
Run Code Online (Sandbox Code Playgroud)
小智 8
处理命令的参数时,如果第一个片段是可识别的表达式,则PowerShell解析器会将相邻的表达式拆分为离散参数,就像使用$()一样.因为PowerShell是基于对象的,所以我们尝试保持对象完整性,直到我们绝对必须渲染为字符串.如果你想强制字符串扩展,请在整个参数序列周围加上双引号作为其他海报的建议.请注意,带有前导字符(如$ x)的参数将被视为双引号字符串"a $ x".这是因为前导字符不被识别为有效表达式,因此我们默认将其视为可扩展字符串.
布鲁斯
微软公司Windows PowerShell团队的Bruce Payette
| 归档时间: |
|
| 查看次数: |
538 次 |
| 最近记录: |