[英]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.