Powershell互斥參數(shù)使用實(shí)例
有時(shí)Powershell的函數(shù)需要互斥,讓用戶只能在其中二選一。
要給腳本創(chuàng)建一組互斥的參數(shù),可以給他們打上不同的屬性標(biāo)志,同時(shí)確保它們的唯一性(假設(shè)不能自動(dòng)識(shí)別參數(shù)類(lèi)型).
function Test-ParameterSet
{
[CmdletBinding(DefaultParameterSetName='number')]
param
(
[int]
[Parameter(ParameterSetName='number', Position=0)]
$id,
[string]
[Parameter(ParameterSetName='text', Position=0)]
$name
)
$PSCmdlet.ParameterSetName
$PSBoundParameters
}
上面函數(shù)有兩個(gè)參數(shù),-id和-name.用戶只能使用其中一個(gè),同時(shí)不能兩個(gè)都用。同時(shí)這里例子也教了大家怎么去獲取用戶輸入的參數(shù)。
多個(gè)互斥參數(shù)可以通過(guò)“ParameterSetName”來(lái)區(qū)分不同的參數(shù)設(shè)置(也包括集合參數(shù))
事實(shí)上你也可以分配多個(gè)參數(shù)跟一個(gè)參數(shù),即一個(gè)固定參數(shù)和一個(gè)可選參數(shù)。
function Test-ParameterSet
{
[CmdletBinding(DefaultParameterSetName='NonCredential')]
param
(
$id,
[Parameter(ParameterSetName='LocalOnly', Mandatory=$false)]
$LocalAction,
[Parameter(ParameterSetName='Credential', Mandatory=$true)]
[Parameter(ParameterSetName='NonCredential', Mandatory=$false)]
$ComputerName,
[Parameter(ParameterSetName='Credential', Mandatory=$false)]
$Credential
)
$PSCmdlet.ParameterSetName
$PSBoundParameters
if ($PSBoundParameters.ContainsKey('ComputerName'))
{
Write-Warning 'Remote Call!'
}
}
Test-ParameterSet 函數(shù)告訴你:當(dāng)使用“NonCredential”時(shí),-ComputerName是可選;當(dāng)用戶使用“-Credential”參數(shù)時(shí)“-ComputerName”又變成必選參數(shù),如果使用了“-LocalAction”參數(shù),將不能使用-ComputerName和-Credential。
相關(guān)文章
PowerShell獲取當(dāng)前進(jìn)程PID的小技巧
這篇文章主要介紹了PowerShell獲取當(dāng)前進(jìn)程PID的小技巧,直接使用一個(gè)全局變量$pid即可獲取當(dāng)前進(jìn)程的PID,需要的朋友可以參考下2014-08-08
Powershell實(shí)現(xiàn)監(jiān)測(cè)服務(wù)器連通狀態(tài)
這篇文章主要介紹了Powershell實(shí)現(xiàn)監(jiān)測(cè)服務(wù)器連通狀態(tài),代碼很簡(jiǎn)單,本文直接給出實(shí)現(xiàn)代碼,需要的朋友可以參考下2015-05-05
PowerShell實(shí)現(xiàn)在字符串中查找大寫(xiě)字母
這篇文章主要介紹了PowerShell實(shí)現(xiàn)在字符串中查找大寫(xiě)字母,本文講解使用.NET中的IsUpper()函數(shù)來(lái)實(shí)現(xiàn)查找大寫(xiě)字母的需求,需要的朋友可以參考下2015-06-06
PowerShell函數(shù)中的開(kāi)關(guān)參數(shù)介紹和創(chuàng)建實(shí)例
這篇文章主要介紹了PowerShell函數(shù)中的開(kāi)關(guān)參數(shù)介紹和創(chuàng)建實(shí)例,開(kāi)關(guān)參數(shù)顧名思義就是起到一個(gè)開(kāi)關(guān)作用,需要的朋友可以參考下2014-07-07
Powershell中創(chuàng)建自定義對(duì)象例子
這篇文章主要介紹了Powershell中創(chuàng)建自定義對(duì)象例子,本文內(nèi)容需要在3.0版本以上有效,需要的朋友可以參考下2014-11-11
自動(dòng)設(shè)置安卓手機(jī)wifi代理的PowerShell腳本
這篇文章主要介紹了自動(dòng)設(shè)置安卓手機(jī)wifi代理的PowerShell腳本,幫助大家進(jìn)行抓包測(cè)試,感興趣的朋友可以了解下2020-10-10

