本文介紹在自定義PowerShell函數(shù)時,如何讓函數(shù)返回值,如何接收返回值,如何讓不相干的內(nèi)容不放到返回值數(shù)組中。
PowerShell函數(shù)體中的任何輸出,一般來說,都會以返回值的形式返回給函數(shù)調(diào)用者。多個輸出的內(nèi)容是放到一個返回值數(shù)組中的。
比如有如下一個返回值測試的函數(shù),
代碼如下:
function Test-ReturnValue
{
1
‘Hello'
return Get-Date
}
這個函數(shù)定義了三個返回值,調(diào)用的效果如下:
代碼如下:
PS> Test-ReturnValue
1
Hello
Saturday, November 2, 2013 12:52:13
PS> $result = Test-ReturnValue
PS> $result[0]
1
由上面的調(diào)用可以看出,直接調(diào)用時,將像數(shù)組一樣,分三行把每一個返回值都輸出出來。而我們用一個變更$result來保存返回值時,我們可以看到函數(shù)的返回值是一個數(shù)組,從下標(biāo)0開始,0-2是三個元素的下標(biāo)。
下面我們說說如果想讓函數(shù)有一些提示性的輸出,但不想讓這些個輸出被放到函數(shù)的返回值中,應(yīng)該怎么才能實(shí)現(xiàn)呢?微軟建議我們使用Write-Host或Write-Warning,這兩個cmdlet輸出的內(nèi)容將被直接顯示到Console控制臺上,而不會進(jìn)入到返回值數(shù)組。
我們把上面的函數(shù)略作修改,加入兩行提示性輸出。
代碼如下:function Test-ReturnValue
{
#加一句Write-Host
Write-Host ‘Starting' -ForegroundColor Green
1
‘Hello'
#再加一個Write-Warning
Write-Warning ‘Almost done...'
return Get-Date
}
然后看看執(zhí)行效果,
代碼如下:
PS> Test-ReturnValue
Starting
1
Hello
WARNING: Almost done...
Saturday, November 2, 2013 12:54:11
PS> $result = Test-ReturnValue
Starting
WARNING: Almost done...
一次是直接調(diào)用,一次是賦值調(diào)用,大家看明白其中的區(qū)別了嗎?Write-Host和Write-Warning,什么叫直接輸出到控制臺!
關(guān)于PowerShell函數(shù)返回值,本文就介紹這么多,希望對您有所幫助,謝謝!
新聞熱點(diǎn)
疑難解答
圖片精選