Powershell互斥參數使用執行個體

來源:互聯網
上載者:User

Powershell互斥參數使用執行個體

   這篇文章主要介紹了Powershell互斥參數使用執行個體,本文給出了兩個程式碼範例來講解互斥參數的使用,需要的朋友可以參考下

  有時Powershell的函數需要互斥,讓使用者只能在其中二選一。

  要給指令碼建立一組互斥的參數,可以給他們打上不同的屬性標誌,同時確保它們的唯一性(假設不能自動識別參數類型).

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

function Test-ParameterSet

{

[CmdletBinding(DefaultParameterSetName='number')]

param

(

[int]

[Parameter(ParameterSetName='number', Position=0)]

$id,

 

[string]

[Parameter(ParameterSetName='text', Position=0)]

$name

)

 

$PSCmdlet.ParameterSetName

$PSBoundParameters

}

  上面函數有兩個參數,-id和-name.使用者只能使用其中一個,同時不能兩個都用。同時這裡例子也教了大家怎麼去擷取使用者輸入的參數。

  多個互斥參數可以通過“ParameterSetName”來區分不同的參數設定(也包括集合參數)

  事實上你也可以分配多個參數跟一個參數,即一個固定參數和一個選擇性參數。

  ?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

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 函數告訴你:當使用“NonCredential”時,-ComputerName是可選;當使用者使用“-Credential”參數時“-ComputerName”又變成必選參數,如果使用了“-LocalAction”參數,將不能使用-ComputerName和-Credential。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.