PowerShell函數(shù)參數(shù)指定數(shù)據(jù)類(lèi)型實(shí)例
本文介紹在PowerShell創(chuàng)建自定義函數(shù)時(shí),為必選參數(shù)設(shè)置強(qiáng)類(lèi)型有什么好處,應(yīng)該如何設(shè)置。
為了提高必選參數(shù)的安全性,PowerShell函數(shù)定義的最佳實(shí)踐告訴我們,要為必選參數(shù)設(shè)置強(qiáng)類(lèi)型。這是為什么呢,我們來(lái)看一個(gè)例子。
function Test-Me {
param
(
[Parameter(Mandatory=$true, HelpMessage='Enter number of EUROs!')]
$Euro
)
$Dollar = $Euro * 1.4
$Dollar
}
上面這個(gè)例子是接收用戶(hù)輸入一個(gè)歐元值,然后,輸出美元值。相當(dāng)于是在兩個(gè)貨幣之間做了一下?lián)Q算。實(shí)際執(zhí)行的效果讓人很吃驚,且看:
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
這里測(cè)試了兩次,第一個(gè)測(cè)試沒(méi)有問(wèn)題:100*1.4=140。但第二個(gè)測(cè)試就蛋疼了,怎么100*1.4還等于100呢?其實(shí)是這樣的,輸入的100被當(dāng)作了一個(gè)字符串,而不是一個(gè)數(shù)字。所以一個(gè)字符串乘以1.4,就相當(dāng)于把這個(gè)字符串重復(fù)1.4次,四舍五入,那就是重復(fù)1次,那還是原樣,所以你知道這個(gè)100怎么來(lái)的了吧?
好了,這就是我們說(shuō)的安全性。不為必選參數(shù)設(shè)置強(qiáng)類(lèi)型不安全!我們來(lái)將其設(shè)置為Double類(lèi)型。
function Test-Me {
param
(
[Parameter(Mandatory=$true, HelpMessage='Enter number of EUROs!')]
[Double]
$Euro
)
$Dollar = $Euro * 1.4
$Dollar
}
大家可以試試這段代碼還會(huì)不會(huì)出現(xiàn)之前的問(wèn)題了。因?yàn)檫@里加了一個(gè)[double]的指令,起到了一個(gè)強(qiáng)制數(shù)據(jù)類(lèi)型的作用。
關(guān)于為PowerShell函數(shù)必選參數(shù)設(shè)置強(qiáng)類(lèi)型,本文就介紹這么多,希望對(duì)您有所幫助,謝謝!
相關(guān)文章
PowerShell腳本開(kāi)發(fā)之收發(fā)TCP消息包
這篇文章里將會(huì)描述如何在PSNet包中創(chuàng)建針對(duì)TCP消息包的函數(shù)Receive-和TCPMessageSend-TCPMessage。并把相關(guān)代碼分享給大家,有需要的朋友可以參考下。2014-10-10
PowerShell中使用Get-Alias命令獲取cmdlet別名例子
這篇文章主要介紹了PowerShell中使用Get-Alias命令獲取cmdlet別名的例子,PowerShell中兼容DOS下和Linux下的很多命令,這些都是靠別名來(lái)實(shí)現(xiàn)的,需要的朋友可以參考下2014-08-08
windows Powershell 快速編輯模式和標(biāo)準(zhǔn)模式
powershell控制臺(tái)有兩種模式,一個(gè)是快速編輯模式,一個(gè)是標(biāo)準(zhǔn)模式。2014-08-08
Windows Powershell 執(zhí)行外部命令
Windows PowerShell 在使用方面與 Cmd.exe 并無(wú)多大不同,只是 Windows PowerShell 的功能更為強(qiáng)大。與 Cmd.exe 一樣,Windows PowerShell 具有內(nèi)置的腳本編寫(xiě)語(yǔ)言,不過(guò)它比 Cmd.exe 原始的批處理語(yǔ)言更為靈活。Cmd.exe 做到的事情,Windows PowerShell 幾乎都能做到。2014-08-08
powershell玩轉(zhuǎn)SQL SERVER所有版本的方法
微軟發(fā)布了最新的powershell for sql server 2016命令行客戶(hù)端庫(kù)。文章介紹了與之相關(guān)的實(shí)用方法,需要的朋友可以參考下2017-10-10
Powershell實(shí)現(xiàn)加密解密文本文件方法實(shí)例
這篇文章主要介紹了Powershell實(shí)現(xiàn)加密解密文本文件方法實(shí)例,本文直接給出加密和解密代碼實(shí)例,需要的朋友可以參考下2015-04-04
Powershell中獲取所有磁盤(pán)盤(pán)符的方法
這篇文章主要介紹了Powershell中獲取所有磁盤(pán)盤(pán)符的方法,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-04-04

