写入主机并在一行上登录



我是PowerShell的新手,并在那一刻自我教。我的问题是,您可以在同一行上有"写入者"one_answers" log-write",以作为一个动作运行?

我拥有的是:

Write-Host "Node Id is $nodeProps["NodeID"]" 
LogWrite "Node Id is $nodeProps["NodeID"]"

,但我想知道是否有一种方法可以这样做:

Write-Host, LogWrite "Node Id is $nodeProps["NodeID"]"

感谢您的任何帮助!

您可以使用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"])"

p.s。:campbell.rw的提示:

如果您不喜欢使用 ForEach-Object的想法 - 通常使用 loop 多个输入对象 - 在 single> single 上输入项目,您可以使用脚本块,与 & call operator

& { Write-Host $args[0]; LogWrite $args[0] } "Node Id is $($nodeProps["NodeID"])"

$args是所有(未结合)参数的集合,因此$args[0]是指第一个参数。(在这种特殊情况下,只引用$args也可以工作。)

您可以使用 Tee-Object cmdlet将管道流复制到文件:

"Node Id is $($nodeProps["NodeID"])" |Tee-Object -FilePath C:devtest2.txt -Append |Write-Host

最新更新