none
Parameter Mandatory abhängig von Wert machen? RRS feed

  • Frage

  • Hi zusammen,

    ich suche nach einer Möglichkeit einen Parameter nur mit Mandatory $true zu versehen wenn ein anderer Parameter auf $false steht. Ist dies Möglich?

    Donnerstag, 13. Oktober 2016 05:57

Antworten

Alle Antworten

  • Moin, schau dir mal Parameter Sets an.

    Evgenij Smirnov

    msg services ag, Berlin -> http://www.msg-services.de
    my personal blog (mostly German) -> http://it-pro-berlin.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    In theory, there is no difference between theory and practice. In practice, there is.

    • Als Antwort markiert Fabian Hammer Donnerstag, 13. Oktober 2016 06:06
    Donnerstag, 13. Oktober 2016 06:04
  • Vielen Dank
    Donnerstag, 13. Oktober 2016 06:07
  • Hi Fabian,

    während Evgenij Recht hat an ParameterSets zu verweisen - die meisten solcher Use-Cases kann es abbilden - du kannst das auch über dynamische Parameter abbilden. Das ist komplex und bringt andere Probleme mit sich, erlaubt es dir aber, sehr flexibel zusammenhänge darzustellen.

    Über Parametersets kannst du meines Wissens nach jedenfalls nicht Inhaltsbasierend Attribute unterscheiden, da Parametersets nur über Parameter-Bindung unterschieden werden, nicht was deren Inhalt ist.

    Grüße,
    Friedrich


    There's no place like 127.0.0.1

    Donnerstag, 13. Oktober 2016 13:32
  • Über Parametersets kannst du meines Wissens nach jedenfalls nicht Inhaltsbasierend Attribute unterscheiden, da Parametersets nur über Parameter-Bindung unterschieden werden, nicht was deren Inhalt ist.

    Korrekt. Aber bei einem booleschen Parameter kann man mogeln und ihn als Switch deklarieren:

    [CmdletBinding()]
    Param(
        [Parameter(ParameterSetName="xxx",Mandatory=$true)][string]$a,
        [Parameter(ParameterSetName="xxx",Mandatory=$false)][switch]$b,
        [Parameter(ParameterSetName="yyy",Mandatory=$false)][string]$c
    )
    Write-Host "a: $a b: $b c: $c"
    Wenn ich -b angebe, verlangt der den Wert für a. Wenn ich's nicht angebe, kann ich trotzdem den Wert von a mitliefern.


    Evgenij Smirnov

    msg services ag, Berlin -> http://www.msg-services.de
    my personal blog (mostly German) -> http://it-pro-berlin.de
    Windows Server User Group, Berlin -> http://www.winsvr-berlin.de
    Mark Minasi Technical Forum, reloaded -> http://newforum.minasi.com

    In theory, there is no difference between theory and practice. In practice, there is.


    Donnerstag, 13. Oktober 2016 19:33