PowerShell实例之函数参数指定数据类型

发布时间:2020-11-03编辑:脚本学堂
本文介绍了PowerShell创建自定义函数时,为必选参数设置强类型,以及如何设置的方法,需要的朋友参考下。

为了提高必选参数的安全性,Powershell函数定义时,要为必选参数设置强类型。

例子:
 

复制代码 代码示例:
function Test-Me {
    param
    (
        [Parameter(Mandatory=$true, HelpMessage='Enter number of EUROs!')]
        $Euro
    )
    $Dollar = $Euro * 1.4
    $Dollar
}
 

以上例子中接收用户输入一个欧元值,然后,输出美元值。
相当于是在两个货币之间做了一下换算。实际执行的效果让人很吃惊,且看:
 

复制代码 代码示例:
PS> Test-Me -Euro 100
140
PS> Test-Me
cmdlet Test-Me at command pipeline position 1
Supply values for the following parameters:
(Type !? for Help.)
Euro: 100
100

这里测试了两次,第一个测试没有问题:100*1.4=140。但第二个测试就蛋疼了,怎么100*1.4还等于100呢?其实是这样的,输入的100被当作了一个字符串,而不是一个数字。所以一个字符串乘以1.4,就相当于把这个字符串重复1.4次,四舍五入,那就是重复1次,那还是原样,所以知道这个100怎么来的了吧?(www.jb200.com 脚本学堂)
这就是安全性。不为必选参数设置强类型不安全!

来将其设置为Double类型。
 

复制代码 代码示例:
function Test-Me {
    param
    (
        [Parameter(Mandatory=$true, HelpMessage='Enter number of EUROs!')]
        [Double]
        $Euro
    )
    $Dollar = $Euro * 1.4
    $Dollar
}
 

这里加了一个[double]的指令,起到了一个强制数据类型的作用。