我可以在一个 foreach 循环中使用两组变量吗?

Can I use two sets of variables in one foreach loop?

是否可以构建一个 foreach 循环,使用两组不同的变量进行循环?

下面是我正在尝试做的一个简化示例 - 除了这个示例列出了两个单独的循环,而我想将它们设置在一个循环中。

$Sites = @("https://www.google.com" , "https://duckduckgo.com")
$Site_names = @( "Google" , "DuckDuckGO")

foreach  ($element in $Sites) {
  Write-Host "`n`n"
  $element
  Write-Host "`n`n"
}

foreach ($name in $Site_names) {
  Write-Host "`n`n"
  $name
  Write-Host "`n`n"
}

还有其他代码要使用,因此循环需要能够在代码块中允许多行代码 - 因此如果有的话,单行解决方案不是我所追求的。我也不认为使用管道是可行的(但我在这方面肯定是错的)。

两组变量:$Sites$Site_names

我想要一个 foreach 循环 运行 循环并列出站点地址和站点名称,每次循环 运行.[=15 时这两个值都会改变=]

这可能吗?

如果您有两个相同大小的数组,您可以简单地使用 for 循环,如下所示:

for ($i=0; $i -lt $Sites.Count; $i++) {
  "{0}`t{1}" -f $Site_names[$i], $Sites[$i]
}

但是,如果您的两个数组的元素无论如何都是相关的,最好使用 hashtable 代替:

$Sites = @{
  'Google'     = 'https://www.google.com'
  'DuckDuckGo' = 'https://duckduckgo.com'
}

foreach ($name in $Sites.Keys) {
  "{0}`t{1}" -f $name, $Sites[$name]
}