Преобразовать строку с запятой в список - PullRequest
0 голосов
/ 21 сентября 2018

У меня есть следующий код powershell:

$Credentials = 'Credentials: myacct1,myacct2'

$runtimes = $Credentials -match "Credentials: (?<content>.*)"
$runtimeList = $matches['content']
Foreach ($runtime in $runtimeList)
{
    Write-Host $runtime
}

Это просто возвращает myacct1,myacct2, где я хочу, чтобы он перебрал список

myacct1
myacct2

Ответы [ 2 ]

0 голосов
/ 23 сентября 2018

Чтобы предложить более PowerShell-идиоматическое решение:

PS> 'Credentials: myacct1,myacct2' -replace '^Credentials: ' -split ','
myacct1
myacct2
  • -replace '^Credentials: ' удаляет префикс Credentials: из строки (заменяет его (подразумеваемой) пустой строкой).
  • -split ',' разбивает оставшуюся строку на массив токенов по ,
0 голосов
/ 21 сентября 2018

Я уверен, что вам просто нужно разделить соответствующую строку на ,, используя String.Split().

$Credentials = 'Credentials: myacct1,myacct2'

$runtimes = $Credentials -match "Credentials: (?<content>.*)"
$runtimeList = $matches['content'].Split(",")
Foreach ($runtime in $runtimeList)
{
    Write-Host $runtime
}

# Output:
# myacct1
# myacct2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...