2016-04-13 11 views
1

Ich rufe ein Skript wie folgt an;Wie kann ich einen Parameter, der an ein Skript übergeben wird, neu definieren?

./pub.ps1 -b ab 

und im Pub ich habe:

param(
    [string]$b 
) 

Was Ich mag würde, ist eine Art von Fall oder Schalter zu haben, der die param neu definiert.

Damit Eingabe in:

-b abc as a parameter could be converted to: $bucket = "abcd123" 
-b ddd as a parameter could be converted to: $bucket = "sdafasdf" 

Mit anderen Worten gibt es irgendeine Form von Fall oder switch-Anweisung ich verwenden könnte?

+0

vielleicht validatescript ist eine passende Lösung, wenn ich Ihre Frage richtig verstehe – Paul

+0

Während es möglich ist, 'ValidateScript()' dafür zu missbrauchen, ist es * nicht * eine passende Lösung. Überhaupt. –

Antwort

4

nicht sicher, ob ich verstehe Ihre Frage, aber Mapping eine Saite zum anderen kann mit einem Hash-Tabelle zum Beispiel geschehen:

$map = @{ 
    'abc' = 'abcd123' 
    'ddd' = 'sdafasdf' 
} 

$bucket = $map[$b] 

oder mit einer switch Aussage:

$bucket = switch ($b) { 
    'abc' { 'abcd123' } 
    'ddd' { 'sdafasdf' } 
    default { 'something else' } 
} 

Der switch Ansatz ist vielseitiger, weil Sie nicht nur einen Standardwert haben können, sondern auch Platzhalter- oder Übereinstimmungen mit regulären Ausdrücken anstelle von einfachen Zeichenfolgenübereinstimmungen.

Verwandte Themen