您的位置:首页 > 其它

命令支持管道

2015-09-17 20:38 197 查看
命令支持管道

支持管道,需要为参数加

[Parameter(ValueFromPipeline)]

特性。

Function Test-Something {
[Alias("ts")]
[CmdletBinding(SupportsShouldProcess)]
param(
[Parameter(ValueFromPipeline)]
$What
)
begin{
}
Process {
if ($pscmdlet.ShouldProcess($What)) {
foreach ($item in $what)
{
dir $item
}
}
} # End Process
end {
}
} # End

如果命令支持数组,比如 dir,就可把
foreach ($item in $What)
{
dir $item
}

换成
dir $What


调用

ts c:, d:\

可以使用管道:

“c:\”, “d:\” | ts

使用管道时,必须加引号。

如果是不支持数组的命令,比如, Write-Host,就要注意了,这时的输出结果就不一样了。

Write-Host “Output $What”

ts c:, d:\

Output c:\ d:\

这并不是我们想要的结果。

“c:\”, “d:\” | ts

Output c:\

Output d:\
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: