我不明白为什么这个脚本中的字符串连接会有所不同。我真的不明白空格是从哪里来的?你能告诉我出什么事了吗?
$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"发布于 2009-04-12 21:46:48
在处理命令的参数时,如果第一个片段是可识别的表达式,则PowerShell解析器会将相邻的表达式拆分为离散的参数,就像$()的情况一样。因为PowerShell是基于对象的,所以我们试图保持对象的完整性,直到我们完全必须呈现为字符串。如果你想强制字符串扩展,就像其他发帖建议的那样,在整个参数序列两边加上双引号。请注意,具有$x之类前导字符的参数将被视为双引号字符串" a$x“。这是因为前导字符没有被识别为有效的表达式,所以我们默认将其视为可扩展的字符串。
-bruce
微软公司视窗PowerShell团队的布鲁斯·佩耶特
https://stackoverflow.com/questions/734616
复制相似问题