gpt4 book ai didi

loops - 从 Powershell 的 ForEach 中返回一个值

转载 作者:行者123 更新时间:2023-12-04 14:10:00 26 4
gpt4 key购买 nike

这似乎很基本,但我看不出它是如何或为什么会这样:

function ReturnStuff{
$a=1,2,3,4,5
$a.ForEach{
return $_
}
}

ReturnStuff

为什么这给了我:
1
2
3
4
5
而不仅仅是1?

最佳答案

您好像在调用 ForEach ([System.Array] 中的一个函数),其参数是一个脚本 block 。本质上,您定义并返回 { Return $_ }循环的每次迭代。

这意味着 ReturnStuff每次都会捕获输出,因为这个函数对这一行的输出什么都不做,所以返回所有的输出:

$a.ForEach{ return $_ }

此行为类似于 $a | Foreach-Object { return $_ }
那么该怎么办?
  • 使用 ForEach而是循环(不要与 Foreach-Object 混淆):
    ForEach ($item In $a) { return $item }
  • 选择从所有脚本 block 返回的第一个值:
    $a.ForEach{ return $_ } | Select -First 1
  • 关于loops - 从 Powershell 的 ForEach 中返回一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37557974/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com