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

PowerShell 5.1中Here-String与Split函数使用:拆分后出现空元素

解决PowerShell拆分Here-String后出现空元素的问题

拆分Here-String后数组出现空元素,是因为原字符串包含换行、空格和空行,直接用Split(',')会保留这些无效内容,导致Invoke-Command因无效计算机名报错。以下是几种解决方法:

方法一:使用Split的重载参数过滤空元素

$csv = @"
    computer1,
    computer2
"@

# 拆分时移除空字符串
$computers = $csv.Split(',', [System.StringSplitOptions]::RemoveEmptyEntries)
# 清理每个元素的前后空白
$computers = $computers | ForEach-Object { $_.Trim() }

方法二:用ConvertFrom-Csv解析CSV格式内容

更适合处理类CSV结构的字符串,避免手动拆分的问题:

$csv = @"
    computer1,
    computer2
"@

# 补全CSV表头后解析
$computers = @"
ComputerName
$csv
"@ | ConvertFrom-Csv | Select-Object -ExpandProperty ComputerName
# 清理空白
$computers = $computers | ForEach-Object { $_.Trim() }

方法三:正则表达式匹配有效内容

直接提取非空白的计算机名,一步到位:

$csv = @"
    computer1,
    computer2
"@

$computers = [regex]::Matches($csv, '\S+') | ForEach-Object { $_.Value }

处理后的$computers数组仅包含有效的计算机名,可直接传给Invoke-Command -ComputerName $computers执行命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 15:15:38