PowerShell函数一次返回多个返回值示例
本文介绍在自定义PowerShell函数时,如何让函数返回值,如何接收返回值,如何让不相干的内容不放到返回值数组中。
PowerShell函数体中的任何输出,一般来说,都会以返回值的形式返回给函数调用者。多个输出的内容是放到一个返回值数组中的。
比如有如下一个返回值测试的函数,
functionTest-ReturnValue { 1 ‘Hello' returnGet-Date }
这个函数定义了三个返回值,调用的效果如下:
PS>Test-ReturnValue 1 Hello Saturday,November2,201312:52:13 PS>$result=Test-ReturnValue PS>$result[0] 1
由上面的调用可以看出,直接调用时,将像数组一样,分三行把每一个返回值都输出出来。而我们用一个变更$result来保存返回值时,我们可以看到函数的返回值是一个数组,从下标0开始,0-2是三个元素的下标。
下面我们说说如果想让函数有一些提示性的输出,但不想让这些个输出被放到函数的返回值中,应该怎么才能实现呢?微软建议我们使用Write-Host或Write-Warning,这两个cmdlet输出的内容将被直接显示到Console控制台上,而不会进入到返回值数组。
我们把上面的函数略作修改,加入两行提示性输出。
functionTest-ReturnValue { #加一句Write-Host Write-Host‘Starting'-ForegroundColorGreen 1 ‘Hello' #再加一个Write-Warning Write-Warning‘Almostdone...' returnGet-Date }
然后看看执行效果,
PS>Test-ReturnValue Starting 1 Hello WARNING:Almostdone... Saturday,November2,201312:54:11
PS>$result=Test-ReturnValue Starting WARNING:Almostdone...