为什么跳过数组中的项目?

灾变

我有一张桌子

桌子

我有以下脚本

$Result = Query "SELECT [databasename], [servertypeA], [servertypeB] from table GROUP BY [databasename], [servertypeA], [servertypeB]"

$Servers = @()
$DB = @()

foreach($row in $Result)
{   
    $i++
    $DB += $row.Item("databasename")
    $Servers += $row.Item("servertypeA")
    $Servers += $row.Item("servertypeB")

    cmd /c "PS.bat $somescript.ps1 $($Servers[-1]) $($DB[-1])"
}

这导致:

db1 serverx
db1 servery
db2 serverx
db2 servery

它应该是

db1 server1
db1 serverx
db1 servery
db2 server2
db2 serverx
db2 servery

为什么servertypeA被跳过,即server1 and server2$Server

我也试过这个

$Result = Query "SELECT distinct [databasename], [servertypeA], [servertypeB] from table"

并产生相同的结果

乔尔·科霍恩

最大的变化是查询,以获得您想要的结果,但请注意,这也让我大大简化了循环:

$Result = Query "SELECT DISTINCT [databasename], [serverTypeA] As Server from table  UNION SELECT DISTINCT [databasename], [serverTypeB] from table"

foreach($row in $Result)
{   
    $DB = $row.Item("databasename")
    $Server = $row.Item("Server")

    cmd /c "PS.bat $somescript.ps1 $Server $DB"
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章