我正在编写一些基本的 powershell 库,我需要检查特定参数是否在一组值中。
在这个例子中,我定义了一个带有可选参数的函数 ALV_time。如果定义,它可能只有 2 个值,否则我会发出警告。它有效,但这是只允许某些参数值的正确方法还是有标准方法?
$warningColor = @{"ForegroundColor" = "Red"}
function AVL_Time {
[CmdletBinding()]
param (
$format
)
process {
# with format parameter
if ($format) {
# list format possible parameters
$format_parameters = @("short: only date", "long: date and time")
if ($format -like "short") {
$now = Get-Date -Format "yyyy-MM-dd"
}
# long date
elseif ($format -like "long") {
$now = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
}
# if wrong format parameter
else {
Write-Host @warningColor "Please use only those parameters:"
$format_parameters | foreach {
Write-Host @warningColor "$_"
}
}
}
# without format parameter
else {
$now = Get-Date -Format "yyyy-MM-dd"
}
# return time
return $now
}
}