簡體   English   中英

PowerShell中強制性參數的默認值

[英]Default value of mandatory parameter in PowerShell

是否可以在函數的必需參數中設置默認值?

它無需將其設置為強制性即可工作...

IE瀏覽器。

Function Get-Hello {
    [CmdletBinding()]
        Param([Parameter(Mandatory=$true)]
              [String]$Text = $Script:Text
        )
    BEGIN {
    }
    PROCESS {
        Write-Host "$Script:Text"
        Write-Host "$Text"
    }
    END {
    }
}

$Text = "hello!"

Get-Hello

提出這個問題的原因是因為我有一個帶有一些必需參數的函數,並且該函數可以完美地調用帶有必需參數的函數,但是我也想讓這些變量可以在使用該函數的腳本中定義。 “更好的可顯示和可編輯”方式以及可以在定義所需參數的情況下運行的功能。

因此,如果在腳本作用域中定義,則應將其作為默認值,否則應立即輸入該值。

提前致謝,

如果定位到PowerShell V3 +,則可以使用$PSDefaultParameterValues首選項變量:

$PSDefaultParameterValues['Get-Hello:Text']={
    if(Test-Path Variable::Script:Text){
        # Checking that variable exists, so we does not return $null, or produce error in strict mode.
        $Script:Text
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM