PowerShell中的$Input变量使用实例

本文介绍在自定义PowerShell函数时,有一个$Input变量,这是一个系统自带的变量,它表示以块结构输入的管道数据。

先看看这个$Input变量在函数中是如何使用的。

function Test-Pipeline {
    $pipelineData = @($Input)
    $Count = $pipelineData.Count
    “Received $Count elements: $pipelineData”
}

运行结果如下:
PS> 1..10 | Test-Pipeline
Received 10 elements: 1 2 3 4 5 6 7 8 9 10

上面例子中,先将$Input变量转换为一个数组(即变量$pipelineData),这样做的好处是后面可以任意的使用$pipelineData变量。大家可能有疑问,什么叫任意使用$pipelineData变量,难道$Input变量不能任意使用?呵呵,说对了!$Input变量只能使用一次!如果不将它赋值给别的变量,那第二次使用到这个$Input变量时,你会怀疑你的眼睛。不信且看:
function Test-Pipeline {
    $Count = $Input.Count
    “Received $Count elements: $Input”
}

PS> 1..10 | Test-Pipeline
Received 1 1 1 1 1 1 1 1 1 1 elements:


这个神奇的$Input变量,总的来说,它可以将管道输入以块结构接收,并且只能读一次。

关于PowerShell函数中的$Input变量,本文就介绍这么多,希望对您有所帮助,谢谢!