Loops 链接两个foreach循环
我正在努力解决这样一个问题:我有两个Loops 链接两个foreach循环,loops,powershell,foreach,Loops,Powershell,Foreach,我正在努力解决这样一个问题:我有两个foreach循环 下面是一个例子: foreach($hostname in $csv) { foreach($dom in $domain) { $x = ($import -split '=')[1].substring(0) & $exe $arg1':'$hostname'.m'$dom'.local' } } 脚本应该像这样执行我的应用程序(只是一个示例): 所以
foreach
循环
下面是一个例子:
foreach($hostname in $csv)
{
foreach($dom in $domain)
{
$x = ($import -split '=')[1].substring(0)
& $exe $arg1':'$hostname'.m'$dom'.local'
}
}
脚本应该像这样执行我的应用程序(只是一个示例):
所以每个主机名只有一个域。当我像这样执行脚本时,它会写出几个不同的主机名(应该是什么样子),但每个主机名都有相同的域(不应该是什么样子)。那么我如何“链接”这两个
foreach
循环呢?如果您有两个对应主机名和域的数组,如下所示:
$csv = @('host1','host2','host3')
$doms = @('domain1','domain2','domain3')
使用for
循环并索引到每个数组中:
for($i = 0; $i -lt $csv.Count; $i++){
$hostname = $csv[$i]
$domain = $doms[$i]
"{0}.{1}.com" -f $hostname,$domain
}
结果:
host1.domain1.tld
host2.domain2.tld
host3.domain3.tld
我建议以不同的方式构建参数字符串(如:
“${arg1}:${hostname}.m${dom}.local”
)。除此之外,应该为主机名和域的每个组合运行该语句。如果没有,请提供示例输入和您期望从该输入中获得的输出。谢谢,这很有效!应该想到“开箱即用”。
host1.domain1.tld
host2.domain2.tld
host3.domain3.tld