【发布时间】:2020-02-03 10:53:18
【问题描述】:
我在脚本中使用格式运算符,示例如下:
$current = 1
$total = 1250
$userCN = "contoso.com/CONTOSO/Users/Adam Smith"
"{0, -35}: {1}" -f "SUCCESS: Updated user $current/$total", $userCN
这预计会显示以下输出:
SUCCESS: Updated user 1/1250 : contoso.com/CONTOSO/Users/Adam Smith
格式运算符用于将目标输出文本保留在适当的位置,当前/总运行数字在 1-99999 之间变化。如果没有格式运算符,我可以像这样突出显示成功线:
Write-Host -BackgroundColor Black -ForegroundColor Green "SUCCESS: Updated user $current/$total: $userCN"
但问题是如何将高亮颜色与格式运算符结合使用?只有-f 参数,它不允许使用颜色参数,因为首先它与Write-Host 不同。
【问题讨论】:
-
把格式化的东西放在括号和像
Write-Host ("{0, -35}: {1}" -f "SUCCESS: Updated user $current/$total", $userCN) -BackgroundColor Black -ForegroundColor Green这样的Write-Host之间 -
似乎有效,谢谢!上面的文档也定义了要与美元符号一起使用的子表达式,但无论有没有它都可以使用。我想我会遵循规范并把 $ 放在适当的位置。
-
@JosefZ:我建议不要使用
$(...)来传递命令参数 -(...)在绝大多数情况下就足够了,并且没有副作用;仅当您需要嵌入复合语句或多个命令或表达式时,才使用$(...)/@(...)。
标签: powershell syntax parameter-passing