SOLVED:
以下是使用管道输入的函数/脚本的最简单示例。每个的行为都与通过管道传输到“echo”cmdlet 相同。
作为函数:
Function Echo-Pipe {
Begin {
# Executes once before first item in pipeline is processed
}
Process {
# Executes once for each pipeline object
echo $_
}
End {
# Executes once after last pipeline object is processed
}
}
Function Echo-Pipe2 {
foreach ($i in $input) {
$i
}
}
作为脚本:
# Echo-Pipe.ps1
Begin {
# Executes once before first item in pipeline is processed
}
Process {
# Executes once for each pipeline object
echo $_
}
End {
# Executes once after last pipeline object is processed
}
# Echo-Pipe2.ps1
foreach ($i in $input) {
$i
}
E.g.
PS > . theFileThatContainsTheFunctions.ps1 # This includes the functions into your session
PS > echo "hello world" | Echo-Pipe
hello world
PS > cat aFileWithThreeTestLines.txt | Echo-Pipe2
The first test line
The second test line
The third test line
您还可以选择使用高级功能,而不是上面的基本方法:
function set-something {
param(
[Parameter(ValueFromPipeline=$true)]
$piped
)
# do something with $piped
}
很明显,只有一个参数可以直接绑定到管道输入。但是,您可以将多个参数绑定到管道输入上的不同属性:
function set-something {
param(
[Parameter(ValueFromPipelineByPropertyName=$true)]
$Prop1,
[Parameter(ValueFromPipelineByPropertyName=$true)]
$Prop2,
)
# do something with $prop1 and $prop2
}
希望这对您学习另一个 shell 的旅程有所帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)