2010-12-08 32 views

Répondre

1

L'utilisation d'une expression régulière est probablement la solution la plus simple de la tâche. Cela peut se faire dans 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" 
} 

Sortie:

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

Merci qui a fonctionné. Il y a une exigence supplémentaire si .. Si les arguments ressemblent à ce qui suit: -car: "Nissan" -Modèle: "Dina" -Couleur: "Light-blue" -wheels: "4" -windowSize.Front: "24" - windowSize.Back: "26" Comment la regex peut-elle être modifiée pour répondre à ces – Henno

+0

@Henno, j'ai mis à jour la réponse afin qu'elle inclue le nouveau cas. –

+0

Vous êtes incroyable! Merci beaucoup! – Henno