Bash有paste command,它可以组合来自标准输入的行
$ { echo foo; echo bar; echo baz; } | paste -s -d ,
foo,bar,baz
鉴于此PowerShell命令
& { echo foo; echo bar; echo baz; }
我想管道创建相同输出的东西。我试过了 写主机但忽略了分隔符选项
PS > & { echo foo; echo bar; echo baz; } | write-host -NoNewline -Separator ','
foobarbaz
答案 0 :(得分:2)
如果您找不到能够完全符合要求的Powershell cmdlet,您可以随时自行推送:
function paste ($separator = ',') {$($input) -join $separator}
& { echo foo; echo bar; echo baz; } | paste
foo,bar,baz
答案 1 :(得分:1)
-join
运营商,但您必须像这样使用它:
(& { echo foo; echo bar; echo baz; }) -join ","
你并没有真正在任何地方输出输出。只需收集结果然后加入。
你也可以用ForEach-Object
来做,如果你真的想管它,但它有点冗长:
& { echo foo; echo bar; echo baz; } | foreach -Begin { $res = @() } { $res += $_ } -End { $res -join "," }
答案 2 :(得分:0)
Write-Host (& { echo foo; echo bar; echo baz; }) -Separator ","
或更明确地说:
[string[]]$myvariable = (& { echo foo; echo bar; echo baz; })
Write-Host $myvariable -Separator ","