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

PowerShell中如何使用', ###, '作为分隔符正确分割字符串?

PowerShell按指定完整字符串分割字符串的解决方案

你当前的脚本无法得到预期结果,核心原因是:PowerShell默认的Split()方法会将传入的字符串拆分为单个字符数组进行分割,而非按你指定的完整', ###, '字符串分割。

以下是两种可行的解决方法:

方案1:使用PowerShell -split 运算符(推荐)

-split 运算符支持直接按完整字符串分割,通过SimpleMatch参数可以避免正则表达式解析,精准匹配目标分隔符:

$hostNames = "10.130.68.77, 172.29.207.33, ###, gcsl-blg7v=10.130.68.77, ndtv23v0675=172.29.207.33"
# 按完整分隔符分割字符串,获取两部分内容
$splitParts = $hostNames -split ', ###, ', 0, 'SimpleMatch'
$iplist = $splitParts[0]
$dnsiplist = $splitParts[1]

Write-Host "COMPLETE LIST: $hostNames"
Write-Host "IP LIST: $iplist"
Write-Host "DNS-IP LIST: $dnsiplist"

方案2:使用.NET String.Split() 重载方法

通过传入字符串数组类型的分隔符,并指定StringSplitOptions.None,强制方法按完整字符串而非单个字符分割:

$hostNames = "10.130.68.77, 172.29.207.33, ###, gcsl-blg7v=10.130.68.77, ndtv23v0675=172.29.207.33"
# 传入字符串数组作为分隔符,禁用默认字符分割逻辑
$splitParts = $hostNames.Split([string[]]', ###, ', [System.StringSplitOptions]::None)
$iplist = $splitParts[0]
$dnsiplist = $splitParts[1]

Write-Host "COMPLETE LIST: $hostNames"
Write-Host "IP LIST: $iplist"
Write-Host "DNS-IP LIST: $dnsiplist"

原脚本失效的原因

你原脚本中$hostNames.Split(', ###, ')调用的是Split(char[])重载,它会把', ###, '拆分为单个字符(,, , #),然后按这些字符的任意组合分割字符串,自然得不到你想要的结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 04:51:17