我曾希望能夠設置cmdlet,以便在參數值存在或以其他方式提示時使用環境變量。使用ScriptBlock作爲強制性測定
function Test-Mandatory
{
[CmdletBinding()]
param(
[Parameter(Mandatory = { [string]::IsNullOrEmpty($Env:TEST_PARAM) })]
[string]
$foo = $Env:TEST_PARAM
)
Write-Host $foo
}
遺憾的是,似乎不管我是否有$Env:TEST_PARAM
集,cmdlet將始終提示$ foo的。
我可以重新驗證使用[ValidateScript({ #snip #})
,但後來我不會再獲得Powershell提示所需的值,如果$Env:TEST_PARAM
不存在。我只會得到一個驗證錯誤。
所以這裏2
- 問題爲什麼會甚至可以指定一個腳本塊,以強制性的,如果它不會出現兌現?
- 根據我指定的標準,是否有一種簡單的方法可以獲得默認的PS提示行爲?
A-ha ..優秀的答案。正是我在找什麼。有趣的注意到:轉換。 –