You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PowerShell 5.1中Invoke-Command的结果转为逗号分隔字符串

PowerShell 5.1:将Invoke-Command结果转为逗号分隔字符串

你可以通过以下几种简洁方式实现需求:

方法1:使用PowerShell原生-join运算符

这是最直接的实现方式,Invoke-Command执行{hostname}后返回的是字符串数组,直接用-join拼接即可:

# 执行命令并保存结果
$hostNames = Invoke-Command -ComputerName $manyComputers -Credential $credential -ScriptBlock {hostname}
# 转换为逗号分隔字符串
$commaSeparatedStr = $hostNames -join ','

方法2:使用.NET的string.Join方法

若你习惯.NET语法,也可以采用这种写法:

$hostNames = Invoke-Command -ComputerName $manyComputers -Credential $credential -ScriptBlock {hostname}
$commaSeparatedStr = [string]::Join(',', $hostNames)

额外处理:过滤执行失败的结果

如果存在部分计算机执行命令失败的情况,结果中会混入错误对象,可先过滤后再拼接:

# 静默忽略错误,仅收集成功返回的结果
$hostNames = Invoke-Command -ComputerName $manyComputers -Credential $credential -ScriptBlock {hostname} -ErrorAction SilentlyContinue
# 只保留字符串类型的结果并拼接
$commaSeparatedStr = $hostNames.Where({ $_ -is [string] }) -join ','

内容的提问来源于stack exchange,提问作者Rod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 16:32:04