是否可以构造一个循环使用两个独立变量的单个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
循环并列出站点地址和站点名称,每次循环运行时这两个值都会更改。
这可能吗?
答案 0 :(得分:1)
如果你有两个相同大小的数组,你可以简单地使用这样的for
循环:
for ($i=0; $i -lt $Sites.Count; $i++) {
"{0}`t{1}" -f $Site_names[$i], $Sites[$i]
}
但是,如果两个数组的元素无关,那么最好使用{{3}}代替:
$Sites = @{
'Google' = 'https://www.google.com'
'DuckDuckGo' = 'https://duckduckgo.com'
}
foreach ($name in $Sites.Keys) {
"{0}`t{1}" -f $name, $Sites[$name]
}