Jak pracowałeś z aplikacjami konsolowymi z gigantyczną liczba argumentów to za pewne dostawałeś oczopląsu - ja tak miałem. Mam mały skrypcik do rozwiązania tego problemu:
function Split-Args
{
param(
[ValidatenotNullOrEmpty()]
[string]$argStr
)
[hashtable]$arg =@{}
[regex]::Matches($argStr, '-.+') | %{
[string]$value = $_.Groups[0].Value
[string]$first, $second = $value.Split([char[]]@(' ','=',':'),2)
$first = $first.Replace('-','')
$arg[$first] = $second
}
return $arg.GetEnumerator() | sort Name
}
Wywołanie jest następujące:
Split-Args "-unzip=true -zippedFile zipfile1.ZIP -unzipFolder .\unzips.temp\ --date sysdate -year:2014 "
Przyjemniej szuka się parametrów posortowanych po kluczu w kilku linijkach niż w jednej lini:
Brak komentarzy:
Prześlij komentarz