如何在Powershell中通过管道传递来自foreach的输出

笨蛋

我正在尝试将foreach循环中的输出传递到format命令中,但是它不起作用。我认为可能的原因是因为这可行。

$op = foreach ($file in (Get-ChildItem -File)) {
    $file |
    Get-Member |
    Where-Object {$_.MemberType -eq "Method" -and $_.Definition -like "*system*" } |
    Select-Object -Property Name, MemberType
}

$op | Format-List

如果我可以将整个输出分配给一个变量,然后将该变量通过管道传递给另一个命令,为什么以下命令不起作用?

(foreach ($file in (Get-ChildItem -File)) {
    $file |
    Get-Member |
    Where-Object {$_.MemberType -eq "Method" -and $_.Definition -like "*system*" } |
    Select-Object -Property Name, MemberType
}) | Format-List

当然,我在没有父母的情况下尝试过,但最终我认为,如果有的话,父母是有道理的。就像$file in (Get-ChildItem -File)在父母中评估表达式并将结果用作实际对象一样

有没有办法使这项工作?

请注意,除了给出示例机制之外,该代码不应实现任何其他目的

马克西米利安·波斯兹利(Maximilian Burszley)

foreach 没有可以捕获的输出(除了通过变量赋值找到的糖之外),但是可以通过将其包装在子表达式中来收集所有返回的对象:

$(foreach ($file in Get-ChildItem -File) {
    # ...
}) | Format-List

同样的模式也可以用于ifswitch语句。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Powershell中通过管道传递旧命令的输出?

如何在Python中通过管道传递Python进程的输出?

如何在R中通过管道传递到if语句

在 PowerShell 中通过管道传递开关参数

如何在Powershell管道中引用前一个“管道”的输出?

如何使用通过批处理管道传递的两个命令中的相同输出文件

如何通过R中的管道传递参数?

如何通过管道传递或重定向curl -v的输出?

如何捕获通过管道传递到Rust程序的进程的输出?

如何在 PowerShell 中的远程连接中将管道值正确映射到 ForEach-Object

如何在外壳中通过管道传递md5哈希结果

如何在Go中通过管道将HTTP响应传递给文件?

如何在Python中通过管道传递到os.execv'd进程的stdin

如何在 bash 中通过管道传递两个变量?

如何在Azure Devops发布管道中通过PowerShell任务创建Azure资源?

如何将输出通过管道传递到sh脚本并将其通过管道传递给命令?

如何在jenkins管道中将参数传递给Powershell脚本

如何将一个命令的输出通过unix管道传递到Elixir的Mix Task中?

如何通过管道grep输出从python中的STDIN中读取

输出通过管道传递给变量的命令

如果成功,则通过管道传递命令的输出

如何通过管道输出ffmpeg?

grep文件并将输出通过管道传递到sed并将sed输出存储在文件中

如何使用 powershell 命令的输出作为 Azure 管道中的参数?

如何在PowerShell中将foreach循环输出转储到文件中?

如何在Perl中处理来自连续过程管道的更新

您可以将一个PowerShell任务的输出通过管道传递到版本管理中的另一个吗?

如何在不通过Powershell更改编码的情况下将命令的输出传递给文件?

如何将foreach-object输出传递给接受管道输入的函数?