PowerShell函數(shù)參數(shù)指定數(shù)據(jù)類型實例
本文介紹在PowerShell創(chuàng)建自定義函數(shù)時,為必選參數(shù)設(shè)置強(qiáng)類型有什么好處,應(yīng)該如何設(shè)置。
為了提高必選參數(shù)的安全性,PowerShell函數(shù)定義的最佳實踐告訴我們,要為必選參數(shù)設(shè)置強(qiáng)類型。這是為什么呢,我們來看一個例子。
function Test-Me {
param
(
[Parameter(Mandatory=$true, HelpMessage='Enter number of EUROs!')]
$Euro
)
$Dollar = $Euro * 1.4
$Dollar
}
上面這個例子是接收用戶輸入一個歐元值,然后,輸出美元值。相當(dāng)于是在兩個貨幣之間做了一下?lián)Q算。實際執(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
這里測試了兩次,第一個測試沒有問題:100*1.4=140。但第二個測試就蛋疼了,怎么100*1.4還等于100呢?其實是這樣的,輸入的100被當(dāng)作了一個字符串,而不是一個數(shù)字。所以一個字符串乘以1.4,就相當(dāng)于把這個字符串重復(fù)1.4次,四舍五入,那就是重復(fù)1次,那還是原樣,所以你知道這個100怎么來的了吧?
好了,這就是我們說的安全性。不為必選參數(shù)設(shè)置強(qiáng)類型不安全!我們來將其設(shè)置為Double類型。
function Test-Me {
param
(
[Parameter(Mandatory=$true, HelpMessage='Enter number of EUROs!')]
[Double]
$Euro
)
$Dollar = $Euro * 1.4
$Dollar
}
大家可以試試這段代碼還會不會出現(xiàn)之前的問題了。因為這里加了一個[double]的指令,起到了一個強(qiáng)制數(shù)據(jù)類型的作用。
關(guān)于為PowerShell函數(shù)必選參數(shù)設(shè)置強(qiáng)類型,本文就介紹這么多,希望對您有所幫助,謝謝!
相關(guān)文章
PowerShell小技巧之添加遠(yuǎn)程防火墻規(guī)則
本文主要介紹了將Windows Server 2012 Core的默認(rèn)控制臺設(shè)置成了PowerShell后,啟用了遠(yuǎn)程桌面,然后使用PowerShell添加PowerShell遠(yuǎn)程防火墻規(guī)則。希望對大家能有所幫助。2014-09-09Powershell實現(xiàn)克隆NTFS文件系統(tǒng)權(quán)限
這篇文章主要介紹了Powershell實現(xiàn)克隆NTFS文件系統(tǒng)權(quán)限,克隆安全描述需要管理員權(quán)限,注意第一個目錄的安全規(guī)則將全部覆蓋第二個的目錄的,需要的朋友可以參考下2014-12-12PowerShell中直接輸出轉(zhuǎn)義字符或變量名稱的方法
這篇文章主要介紹了PowerShell中直接輸出轉(zhuǎn)義字符或變量名稱的方法,也就是原樣輸出字符串,不理會字符串可能包含的換行符、變量等,需要的朋友可以參考下2014-08-08PowerShell函數(shù)中把參數(shù)傳入另一個函數(shù)的函數(shù)傳參例子
這篇文章主要介紹了PowerShell函數(shù)中把參數(shù)傳入另一個函數(shù)例子也是使用的PSBoundParameters,但是有區(qū)別哦,,需要的朋友可以參考下2014-07-07