Разбор пользовательских аргументов в Powershell "-" с разделителями - PullRequest
0 голосов
/ 08 декабря 2010

У меня есть строка

-кара: "Nissan" -Модель: "Дина" -Цвет: "голубой" -колеса: "4"

Как мне извлечьаргументы?Первоначально предполагалось использовать «-» в качестве разделителя, однако это не сработает.

1 Ответ

1 голос
/ 08 декабря 2010

Использование регулярного выражения, вероятно, самое простое решение задачи.Это можно сделать в PowerShell:

$text = @'
-car:"Nissan" -Model:"Dina" -Color:"Light-blue" -wheels:"4" -windowSize.Front:"24"
'@

# assume parameter values do not contain ", otherwise this pattern should be changed
$pattern = '-([\.\w]+):"([^"]+)"'

foreach($match in [System.Text.RegularExpressions.Regex]::Matches($text, $pattern)) {
 $param = $match.Groups[1].Value
 $value = $match.Groups[2].Value
 "$param is $value"
}

Вывод:

car is Nissan
Model is Dina
Color is Light-blue
wheels is 4
windowSize.Front is 24
...