i have the below powershell script:
$hostNames = "10.130.68.77, 172.29.207.33, ###, gcsl-blg7v=10.130.68.77, ndtv23v0675=172.29.207.33"
$iplist = $hostNames.Split(', ###, ')[0]
$dnsiplist = $hostNames.Split(', ###, ')[1]
Write-Host "COMPLETE LIST: $hostNames"
Write-Host "IP LIST: $iplist"
Write-Host "DNS-IP LIST: $dnsiplist"
Output:
COMPLETE LIST: 10.130.68.77, 172.29.207.33, ###, gcsl-blg7v=10.130.68.77, ndtv23v0675=172.29.207.33
IP LIST: 10.130.68.77
DNS-IP LIST:
i wish to split on ', ###, ' so that i could get the below desired output:
COMPLETE LIST: 10.130.68.77, 172.29.207.33, ###, gcsl-blg7v=10.130.68.77, ndtv23v0675=172.29.207.33
IP LIST: 10.130.68.77, 172.29.207.33
DNS-IP LIST: gcsl-blg7v=10.130.68.77, ndtv23v0675=172.29.207.33
Please let me know how can i?
.Splituses thepublic string[] Split(params char[] separator);overload by default, in your example this means that the', ###, 'is first converted to a char array[char[]] ', ###, 'and then split by each char. You need to help PowerShell to use the correct overload,public string[] Split(string[] separator, StringSplitOptions options);:Note that this issue only happens in Windows PowerShell (.NET Framework), in PowerShell 7+
$hostNames.Split(', ###, ')would work just fine.It would be easier to use the regex-based
-splitoperator in this case: