Function Test-Calc { [CmdletBinding(SupportsShouldProcess=$True,ConfirmImpact="none")] Param ( [ValidateRange(1,100)] [parameter(Mandatory=$true, Position=0, HelpMessage="请输入数字1")] [int]$Number1,
[ValidateSet("+","-","*","/","Max","Min")]
[parameter(Mandatory=$true, Position=1, HelpMessage="操作符")]
[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" } }
属性名
|
可选参数值
|
属性说明
|
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
|
无
|
检验参数是否为非空字符串
|
https://guhuajun.wordpress.com/2009/05/11/windows-powershell-v2-介绍(5)-高级函数(上)/
https://guhuajun.wordpress.com/2009/05/18/powershell-v2-介绍(6)-高级函数(中)/
https://guhuajun.wordpress.com/2009/05/25/powershell-v2-介绍(7)-高级函数(下)/