Udostępnij za pomocą


UnikajdefaultValueSwitchParameter

poziom ważności: ostrzeżenie

Opis

Jeśli parametr przyjmuje tylko true i false, zdefiniuj parametr jako typ [Switch]. Program PowerShell traktuje parametr przełącznika jako true, gdy jest używany z poleceniem. Jeśli parametr nie jest dołączony do polecenia, program PowerShell uważa, że parametr ma wartość false. Nie należy definiować parametrów [Boolean].

Nie należy definiować parametru przełącznika z wartością domyślną $true, ponieważ nie jest to oczekiwane zachowanie parametru przełącznika.

Jak

Zmień wartość domyślną parametru przełącznika na $false lub nie podaj wartości domyślnej. Napisz logikę skryptu, aby założyć, że wartość domyślna parametru przełącznika jest $false lub nie jest podana.

Przykład

Błędny

function Test-Script
{
    [CmdletBinding()]
    Param
    (
        [String]
        $Param1,

        [switch]
        $Switch=$True
    )
    ...
}

Poprawny

function Test-Script
{
    [CmdletBinding()]
    Param
    (
        [String]
        $Param1,

        [switch]
        $Switch
    )

    begin {
        # Ensure that the $Switch is set to false if not provided
        if (-not $PSBoundParameters.ContainsKey('Switch')) {
            $Switch = $false
        }
    }
    ...
}

Więcej informacji