PowerShell中使用正則和ValidateSet驗證參數(shù)合法性
更新時間:2015年04月11日 09:25:36 投稿:junjie
這篇文章主要介紹了PowerShell中使用正則和ValidateSet驗證參數(shù)合法性,本文分別給出了驗證實例,講解如何驗證參數(shù)的正確性,需要的朋友可以參考下
適用于PowerShell 2.0或著更高版本
當你使用PowerShell 創(chuàng)建了一個函數(shù)時,要確保你告訴PowerShell 你的參數(shù)期望什么樣的值。比如你想用戶輸入星期
復制代碼 代碼如下:
function Get-Weekday
{
param
(
$Weekday
)
"You chose $Weekday"
}
此時用戶可以輸入任何值,即使這個值不是一個合法的星期,比如星期七
復制代碼 代碼如下:
PS> Get-Weekday -Weekday NoWeekday
You chose NoWeekday
也許你之前還見過正則表達式類型的驗證方式:
復制代碼 代碼如下:
function Get-Weekday
{
param
(
[ValidatePattern('Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday')]
$Weekday
)
"You chose $Weekday"
}
現(xiàn)在一旦用戶輸入的字符串與你指定的模式不匹配時,Powershell會拋出一個異常,但是這個異常信息不夠友好。在輸出參數(shù)時,控制臺或著ISE編輯器也不能智能提示:
所以更好的方式應當是使用ValidateSet:
復制代碼 代碼如下:
function Get-Weekday
{
param
(
[ValidateSet('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday')]
$Weekday
)
"You chose $Weekday"
}
現(xiàn)在用戶在輸出參數(shù)時被限定在你規(guī)定的值集合中,另外在ISE中還會智能提示用戶允許的值列表。如果你能在.NET的類型中找到一個枚舉值剛好描述你需要的參數(shù),那就更易如反掌了:
復制代碼 代碼如下:
function Get-Weekday
{
param
(
[System.DayOfWeek]
$Weekday
)
"You chose $Weekday"
}
相關文章
Powershell小技巧之使用Update-TypeData擴展類型系統(tǒng)
昨天演示獲取時辰《PowerShell獲取當前的時辰 》,并不只是為了獲取時辰,還為了使用Update-TypeData命令將時辰這一屬性,牢牢地幫到DateTime類型上。2014-09-09類似rpm包管理器的Windows Installer PowerShell Module簡介
前兩篇文章分享了使用PowerShell安裝Window程序的一些技巧。但是都是基于兼容已有命令行的調用。今天分享一個第三方組件,讓你直接可以使用Cmdlet命令來查詢,安裝,修復Windows程序2014-05-05PowerShell中字符串使用單引號和雙引號的區(qū)別
這篇文章主要介紹了PowerShell中字符串使用單引號和雙引號的區(qū)別,大家可能會經(jīng)常遇到這個問題,需要的朋友可以參考下2014-08-08