【问题标题】:Using nested foreach in powershell在 powershell 中使用嵌套的 foreach
【发布时间】:2021-10-06 03:54:01
【问题描述】:

我正在尝试通过在 powershell 中使用 foreach 来运行它。

$var1 = @("aaa","bbb","ccc"..........)
$var2 = @("111","222","333"..........)
 foreach ($val1 in $var1) {
   echo $val1
    foreach ($val2 in $var2) {
       echo $val2
  }
}
Output of the above script is:
aaa
111
222
333
bbb
111
222
333........

But i want to print like this: 
aaa
111
bbb
222
ccc
333........

foreach 可以吗?我已经使用 for 循环解决了这个问题。

【问题讨论】:

  • 乍一看,for 循环是可行的
  • 我已经通过使用 for 循环解决了这个问题。你可以通过使用 foreach 来提供帮助吗?

标签: powershell shell loops foreach


【解决方案1】:
$var1 = @("aaa","bbb","ccc")
$var2 = @("111","222","333")

$maxCount = [math]::Max($var1.Count,$var2.Count)
  • 使用ForEach
foreach($z in 0..($maxCount-1))
{
    $var1[$z]
    $var2[$z]
}
  • 使用For
for($i=0;$i -lt $maxCount;$i++)
{
    $var1[$i]
    $var2[$i]
}

【讨论】:

  • 不错;顺便说一句:我建议增强 PowerShell 以支持以下语法(这将支持无限数量的集合以串联迭代),但它被拒绝了:foreach ($val1, $val2 in $var1, $var2) { ... } - 请参阅GitHub issue#14732)
  • @mklement0 实际上是一个很好的补充。感觉不好。
猜你喜欢
  • 2014-01-18
  • 2013-07-09
  • 2023-03-21
  • 2018-12-11
  • 2012-06-10
  • 2018-04-08
  • 1970-01-01
  • 1970-01-01
  • 2020-02-06
相关资源
最近更新 更多