powershell - 写主机和登录在一行?

标签 powershell write-host

我是 PowerShell 的新手,当时是自学的。我的问题是,您能否在同一行上同时使用“write-host”和“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 的想法 - 它通常用于循环 多个 输入对象 - on 单个输入项,您可以使用脚本 block &调用操作符:

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

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

关于powershell - 写主机和登录在一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41252501/

相关文章:

powershell - 使用 "GetList"参数调用 "1"时出现异常

.net - 我可以在Powershell中使用System.Core.dll/System.Collections.Generic.HashSet吗?

powershell - 使用 Write-Host 以橙色书写文本

powershell - 如何在 PowerShell 中标准化路径?

windows - Windows Docker容器停止执行某些可执行文件

powershell - 如何在VS 2017中替换类似的代码。

powershell - 如何在Powershell中输出粗体文本?

powershell - PowerShell 是否有类似 "echo off"和 "echo on"的触发器?

powershell - 如何在Powershell数组中写入托管元素的单个属性?