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

 更新时间:2014年07月31日 11:02:37   投稿:junjie  
这篇文章主要介绍了PowerShell函数参数指定数据类型实例,即强制参数的数据类型例子,需要的朋友可以参考下

本文介绍在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怎么来的了吧?

好了,这就是我们说的安全性。不为必选参数设置强类型不安全!我们来将其设置为Double类型。

复制代码 代码如下:

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

大家可以试试这段代码还会不会出现之前的问题了。因为这里加了一个[double]的指令,起到了一个强制数据类型的作用。

关于为PowerShell函数必选参数设置强类型,本文就介绍这么多,希望对您有所帮助,谢谢!

相关文章

  • PowerShell脚本开发之收发TCP消息包

    PowerShell脚本开发之收发TCP消息包

    这篇文章里将会描述如何在PSNet包中创建针对TCP消息包的函数Receive-和TCPMessageSend-TCPMessage。并把相关代码分享给大家,有需要的朋友可以参考下。
    2014-10-10
  • PowerShell中使用Get-Alias命令获取cmdlet别名例子

    PowerShell中使用Get-Alias命令获取cmdlet别名例子

    这篇文章主要介绍了PowerShell中使用Get-Alias命令获取cmdlet别名的例子,PowerShell中兼容DOS下和Linux下的很多命令,这些都是靠别名来实现的,需要的朋友可以参考下
    2014-08-08
  • PowerShell中编程清空IE缓存方法

    PowerShell中编程清空IE缓存方法

    这篇文章主要介绍了PowerShell中编程清空IE缓存方法,本文代码同样适用于批处理程序,需要的朋友可以参考下
    2015-05-05
  • windows Powershell 快速编辑模式和标准模式

    windows Powershell 快速编辑模式和标准模式

    powershell控制台有两种模式,一个是快速编辑模式,一个是标准模式。
    2014-08-08
  • Windows Powershell 执行外部命令

    Windows Powershell 执行外部命令

    Windows PowerShell 在使用方面与 Cmd.exe 并无多大不同,只是 Windows PowerShell 的功能更为强大。与 Cmd.exe 一样,Windows PowerShell 具有内置的脚本编写语言,不过它比 Cmd.exe 原始的批处理语言更为灵活。Cmd.exe 做到的事情,Windows PowerShell 几乎都能做到。
    2014-08-08
  • powershell玩转SQL SERVER所有版本的方法

    powershell玩转SQL SERVER所有版本的方法

    微软发布了最新的powershell for sql server 2016命令行客户端库。文章介绍了与之相关的实用方法,需要的朋友可以参考下
    2017-10-10
  • Windows Powershell 变量的作用域

    Windows Powershell 变量的作用域

    Powershell所有的变量都有一个决定变量是否可用的作用域。Powershell支持四个作用域:全局、当前、私有和脚本。有了这些作用域就可以限制变量的可见性了,尤其是在函数和脚本中。
    2014-09-09
  • PowerShell小技巧之使用Verb打开程序

    PowerShell小技巧之使用Verb打开程序

    本文主要介绍了在Powershell中使用Verb打开程序的小技巧,非常简单实用,希望对大家有所帮助
    2014-09-09
  • Powershell实现加密解密文本文件方法实例

    Powershell实现加密解密文本文件方法实例

    这篇文章主要介绍了Powershell实现加密解密文本文件方法实例,本文直接给出加密和解密代码实例,需要的朋友可以参考下
    2015-04-04
  • Powershell中获取所有磁盘盘符的方法

    Powershell中获取所有磁盘盘符的方法

    这篇文章主要介绍了Powershell中获取所有磁盘盘符的方法,本文直接给出实现代码,需要的朋友可以参考下
    2015-04-04

最新评论