成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Windows Powershell中的函數參數

系統 Windows
PowerShell中的最大特點之一是函數使用上的可擴展性強。在這篇文章中,我們將仔細看一下專業類型的函數:產品質量函數。

在先前關于用戶自定義的Windows PowerShell的的文章中,我已經說過PowerShell中的最大特點之一是函數使用上的可擴展性強。在這篇文章中,我們將仔細看一下專業類型的函數:產品質量函數。

你問有什么區別?產品質量函數花力氣來測試輸入并在提供信息輸出的情況下為算是錯誤進行穩固工作。通常當在為產品運用函數時,你想知道它是否中斷-- 同時你也一定很想知道為什么。其它的語言需要你自己來設計參數和處理錯誤。我們是幸運的,Windows PowerShell有許多類似的內置函數。

PowerShell的參數

當我們談論Windows PowerShell函數的時候,我們需要考慮三件事情:輸入、輸出和錯誤。這篇文章將重點說明輸入,也被稱為參數。PowerShell有許多參數選項,并且可以通過以下三種方式之一來進行運用:

位置參數

PowerShell可以創建一個數值數組傳遞給函數的$args變量。傳遞給函數的每一個值從0開始被添加到這個數組中。例如:

function foo
{
Write-Host $args[0] $args[1]
}
foo "This is parameter 1" "This is parameter 2"

名字參數

PowerShell輸入的參數也可以命名,這就意味著它們可以通過名字傳遞,并且值被放置在相應的變量里。例如(注意當這個函數被調用的時候,參數顛倒,但是數值能正確的返回):

Example (notice the parameters are reversed when the function is called,
but the values are returned correctly):
function foo
{
Param($param1,$param2)
Write-Host $param1 $param2
}
foo -param2 "This is parameter 2" -param1 "This is
parameter 1"

Splatting參數

在PowerShell的參數傳遞中,這個或許是最常用的方法。它包含創建一個數組或哈希表作為傳遞給函數的參數組。這個讓你可以動態地創建整個腳本的參數,然后當你準備好后即可調用函數。例如:

function foo
{
Param($param1,$param2)
Write-Host $param1 $param2
}
Create Hash table
$blah = @{"Param1"="This is parameter 1";
"Param2"="This is parameter 2"}
# Pass hash table to function
foo @Blah

PowerShell 參數的屬性

Mandatory – 這個屬性在PowerShell參數選項里是默認的,但是如果你知道你所需要的參數類型,你可以使用這個屬性來強制用戶傳遞這種類型的參數。如果它們沒有這樣做,PowerShell將報錯給它們,并且強迫的它們提供這種類型的值,以便函數能夠正常的運行。例如:

function foo
{
Param(
[Parameter(Mandatory=$True)]
$param1
)
Write-Host $param1
}

ParameterSetName --我們常常需要一起傳遞一組參數(通常因為一些意外所中斷)。例如,你有一個函數要獲得一個活動目錄對象,如果它是一個用戶或是一個計算機,你就需要知道帳戶:

function Get-ADObject
{
Param(
[Parameter(Mandatory=$True,
ParameterSetName="User")]
$User,
[Parameter(Mandatory=$True,
ParameterSetName="Computer")]
$Computer
)
$PScmdlet.ParameterSetName
}
Get-ADObject --# This will throw an error because no
parameters passed
Get-ADObject –user "joe" # Will return 'User'
Get-ADObject –Computer "joe" # Will return 'Computer'
Get-ADObject –User "joe" –Computer "joe" # Will return
an error

ValueFromPipeline -- 這個屬性告訴函數某個特定的參數值可以通過管道來傳遞參數。例如:

function Get-ADUserObject
{
Param(
[Parameter(ValueFromPipeline=$true)]
$User,
)
Process
{
$User
}
}
}
$ListofUsers | Get-ADUserObject

ValueFromPipelineByPropertyName -- 這個屬性似乎與ValueFromPipeline有點相似,但是并不是使用“類型”,它使用的是傳入對象的屬性名稱。例如,如果你有一個叫做UserName的用戶對象的屬性。

function Get-ADUserObject
{
Param(
[Parameter(ValueFromPipeline
ByPropertyName=$true)]
$Username,
)
Process
{
$UserName
}
}
$ListofUserObjects | Get-ADUserObject

HelpMessage -- 這允許你給用戶添加一個幫助信息。如果他們沒有指定mandatory屬性來調用你的函數,這可以給他們解釋需要輸入用戶名:

function Get-ADComputerObject
{
Param(
[Parameter(Mandatory=$True,HelpMessage=
"Enter computer name.")]
$ComputerName,
)
$ComputerName
}

以上這些信息應該能夠幫助你開始寫一些產品質量函數,但是請記住,這僅僅是冰山的一角。

【編輯推薦】

  1. 使用PowerShell實現常用網絡命令
  2. PowerShell基礎介紹
  3. 詳解Win Server2008 R2中的PowerShell
  4. 巧用PowerShell管理Win Server 2008 R2
  5. PowerShell命令輸出的控制方法
責任編輯:張浩 來源: TT中國
相關推薦

2010-12-31 14:30:35

PowerShell

2011-02-14 10:21:04

Windows PowWMI

2023-12-20 07:12:00

PowerShellCmdletNamed類型

2024-01-03 07:57:11

高級參數PowerShellVerbose 參數

2010-12-21 14:08:50

PowerShell

2011-04-20 10:02:22

PowerShell

2012-01-16 09:18:08

虛擬化桌面虛擬化PowerShell

2012-02-01 10:32:07

PowerShellWindows 7

2016-12-05 16:09:08

Windows 10PowerShell任務

2025-02-12 10:51:51

2021-02-22 11:48:19

Windows 10Windows微軟

2021-12-28 00:21:29

Windows 10Windows微軟

2013-02-25 14:17:16

2009-07-03 08:38:44

微軟Windows 7PowerShell

2013-02-25 15:00:50

Windows Ser

2013-11-07 15:55:29

PowerShellVDI

2015-08-19 16:27:39

PowerShell更新Windows Def

2014-05-19 10:34:03

Windows Pow

2009-05-07 09:56:46

PowerShellWinForm微軟

2009-07-06 18:01:04

Windows CE未公開函數
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av网址在线| 国产成人网 | 久久久入口 | 国产欧美一区二区久久性色99 | 91免费观看在线 | 一本色道精品久久一区二区三区 | 欧美成人精品 | 国产欧美一区二区三区另类精品 | 日韩成人中文字幕 | 在线视频亚洲 | 欧美成人手机视频 | 欧美精品一区在线发布 | 很黄很污的网站 | 成人黄色电影在线播放 | 久久不卡视频 | 蜜桃视频在线观看www社区 | 成人超碰在线 | 欧美 日韩精品 | 一区二区三区国产 | aa级毛片毛片免费观看久 | 日韩在线一区二区三区 | 欧美视频免费在线 | 一区二区三区中文字幕 | 久久久精品视 | 久久久久久久91 | 欧美一级免费片 | 欧美日韩精品久久久免费观看 | 免费在线观看毛片 | 啪啪免费 | 国产视频福利一区 | 成年视频在线观看 | 国产女人精品视频 | 久久久久久国 | 国产精品精品视频一区二区三区 | 国产精品高潮呻吟久久 | 一区天堂 | 日韩一区二区在线观看视频 | 国产区在线视频 | 一区二区亚洲 | 久久精品超碰 | 欧美一级毛片久久99精品蜜桃 |