【问题标题】:How to loop two arguments in one foreach loop after 1st arg finishes?第一个参数完成后,如何在一个 foreach 循环中循环两个参数?
【发布时间】:2019-03-05 21:39:34
【问题描述】:

假设我有两种不同类型的服务器

Function Query($Query) {
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection 
$SqlConnection.ConnectionString = "Server=$Server;Initial Catalog=$Database;Integrated Security=SSPI" 
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand 
$SqlCmd.Connection = $SqlConnection 
$SqlCmd.CommandText = $Query 
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter 
$SqlAdapter.SelectCommand = $SqlCmd 
$DataSet = New-Object System.Data.DataSet 
$a=$SqlAdapter.Fill($DataSet)
$SqlConnection.Close() 
$DataSet.Tables[0] }

$servers_typeA = Query "SELECT DISTINCT [server_typeA] FROM table" | Select -ExpandProperty server_typeA;
$servers_typeB = Query "SELECT DISTINCT [server_typeB] FROM table" | Select -ExpandProperty server_typeB;

我有一个 forloop 现在循环遍历 typeA 中的服务器并显示 $servers_typeA 中每个服务器的数据库连接

foreach($server in $servers_typeA)

而不是为 typeB 复制相同的循环,所以

foreach($server in $servers_typeB)

有没有一种方法可以告诉 forloop 在 A 之后循环 typeB?

基本上是这样的?

foreach($server in $servers_typeA then $servers_typeB)

【问题讨论】:

  • foreach($server in @($servers_typeA, $servers_typeB)) ... 数组数组。您什么时候开始学习 Powershell 的基础知识?
  • 我不知道。它会节省什么时间或打字?你可以嵌套它们;但这也不会节省任何时间。
  • @Olaf 哈哈,我已经知道基础知识了....我在 powershell 中编写脚本已经一年多了,我们整个部门的自动化都是由我处理的。我所要求的只是有没有办法。就这样。数组数组不适用于我的情况,因为参数不是数组。相反,它们保存的是查询语句的结果,该语句与 expand 属性一起存储。
  • 那么,让我们看看这些变量中的 IS 是什么

标签: powershell foreach


【解决方案1】:

您可以简单地连接数组与+,以便循环它们的组合项;一个简化的例子:

$servers_typeA = 'foo', 'bar'
$servers_typeB = 'baz', 'bam'

foreach ($server in $servers_typeA + $servers_typeB) {
  "processing server $server..."
}

注意:如果连接的 LHS 实际上是标量而不是数组,请在其周围使用@(...)(RHS 不需要):@($servers_typeA) + $servers_typeB

以上产出:

processing server foo...
processing server bar...
processing server baz...
processing server bam...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-09
    相关资源
    最近更新 更多