PowerShell-更改 PipelineVariable 名称

PowerShell-更改 PipelineVariable 名称

在 PowerShell 中,您可以更改用作迭代块中的项目的变量的名称,例如:

dir -recurse *.snippet -OutVariable snippets

$snippets | Where-Object -PipelineVariable fn { $fn.Length -ge 6000 } | select FullName

该代码不起作用,但您明白我的意思。我认为它不起作用是因为-PipelineVariable必须在前一个 CmdLet 中指定参数。

我的问题是,我使用什么 CmdLet 来传输内容$snippets

即当我仅$snippets隐式运行它时,仅将内容喷入管道,但是哪个 CmdLet 可以执行此操作?

我已经尝试了很多,很多似乎都在屏幕上输出数组,但是当输入到Where-Objectwhere 子句中时不起作用,就像它查看外部数组对象实例而不是每个项目一样。

路加

答案1

-PipelineVariable我想说,只有当管道中有多个步骤时,使用它来保留来自早期管道元素的对象才有意义。

无论如何:在这种情况下我会使用Write-Output

Write-Output $snippets -PipelineVariable fn | Where-Object { $fn.Length -ge 6000 }

相关内容