Function Test-AdvancedFunction
{
[CmdletBinding(SupportsShouldProcess=<Boolean>,
ConfirmImpact=<String>,
DefaultParameterSetName=<String>)]
Param ($Parameter1)
Begin{}
Process{}
End{}
}
属性名
|
可选参数值
|
属性说明
|
Mandatory
|
$True, $False
|
指定参数是否是必要参数,强制用户输入
|
Position
|
整数
|
指定参数位置,如果用户没有指定具体参数名称,那么PowerShell将根据该值按序填充相应的参数
|
ParameterSetName
|
字符串
|
指定该参数属于哪个特定的参数集
|
ValueFromPipeline
|
$True, $False
|
是否接受来自管道中的值
|
ValueFromPipelineByPropertyName
|
$True, $False
|
是否接受来自管道中指定参数名的值
|
ValueFromRemainingArguments
|
$True, $False
|
是否接受来自管道中的剩余参数
|
HelpMessage
|
字符串
|
描述参数作用的帮助信息
|
Alias
|
字符串
|
指定参数的另一个名称
|
下面的参数是用来对用户输入的参数进行验证
|
||
AllowNull
|
无
|
允许对象为空
|
AllowEmptyString
|
无
|
允许字符串为空
|
AllowEmptyCollection
|
无
|
允许集合为空
|
ValidateCount
|
整数
|
检验可以接受的参数个数
|
ValidateLength
|
整数
|
检验参数的长度
|
ValidatePattern
|
正则表达式
|
使用正则表达式来检验参数
|
ValidateRange
|
整数范围
|
检验参数值是否在指定范围内
|
ValidateScript
|
表达式
|
使用代码来检验参数值
|
ValidateSet
|
集合
|
检验参数值是否在指定的属性集合中
|
ValidateNotNull
|
无
|
检验参数是否为非空对象
|
ValidateNotNullOrEmpty
|
无
|
检验参数是否为非空字符串
|
Function Test-Calc
{
[CmdletBinding(SupportsShouldProcess=$True,ConfirmImpact="none")]
Param
(
[ValidateRange(1,100)]
[parameter(Mandatory=$true,
Position=0,
HelpMessage="请输入数字1")]
[int]$Number1,
[parameter(Mandatory=$true,
Position=1,
HelpMessage="操作符")]
[ValidateSet("+","-","*","/","Max","Min")]
[string]$Operator,
[ValidateRange(1,100)]
[parameter(Mandatory=$true,
Position=2,
HelpMessage="请输入数字2")]
[int]$Number2
)
process
{
switch ($Operator)
{
"+" {$result = $Number1 + $Number2}
"-" {$result = $Number1 - $Number2}
"*" {$result = $Number1 * $Number2}
"/" {$result = $Number1 / $Number2}
"Min" {$result = [Math]::Min($Number1,$Number2)}
"Max" {$result = [Math]::Max($Number1,$Number2)}
}
}
end
{
Write-Host "Result : $Number1 $Operator $Number2 = $result"
}
}