您可以使用带有ForEach-Object
cmdlet 的管道(%
是它的内置别名),如下所示:
"Node Id is $($nodeProps["NodeID"])" | % { Write-Host $_; LogWrite $_ }
请注意$nodeProps["NodeID"]
需要如何将引用包含在内$(...)
才能工作。
如果您反复需要它,请定义一个(简单)函数:
function writeAndLog([string] $msg) { Write-Host $msg; LogWrite $msg }
writeAndLog "Node Id is $($nodeProps["NodeID"])"
PS:由campbell.rw的评论提示:
如果您不喜欢在单个输入项上使用-ForEach-Object
通常用于循环多个输入对象 -的想法,则可以使用脚本块和调用运算符:&
& { Write-Host $args[0]; LogWrite $args[0] } "Node Id is $($nodeProps["NodeID"])"
$args
是所有(未绑定)参数的集合,因此$args[0]
指的是第一个。(在这种特殊情况下,仅引用$args
也可以。)