Powershell 对于每个对象内部的每个对象

Powershell 对于每个对象内部的每个对象,powershell,powershell-2.0,powershell-3.0,powershell-4.0,Powershell,Powershell 2.0,Powershell 3.0,Powershell 4.0,我在循环内部编写循环,并将主循环变量使用到子循环数组变量中 输入参数 param( [array]$Emp_ID=@(1,2), [array]$Emp_Name=@("Scott", "Jones") ) $Sql_Get_Emp_ID_List = @() $Emp_ID | ForEach-Object { $Src_Emp_ID = $_ $Emp_Name | ForEach-Object { $Src_Emp_Name = $_ $Query_GetDep

我在循环内部编写循环,并将主循环变量使用到子循环数组变量中

输入参数

param(
[array]$Emp_ID=@(1,2),
[array]$Emp_Name=@("Scott", "Jones")
)

$Sql_Get_Emp_ID_List = @()
    $Emp_ID | ForEach-Object { $Src_Emp_ID = $_
    $Emp_Name | ForEach-Object { $Src_Emp_Name = $_

    $Query_GetDeptID="(Select Dept_ID From Dept_Table Where Emp_Name = '$Src_Emp_Name' And Emp_ID = $Src_Emp_ID)"        
    }
    }
对于每个对象循环,我从上面得到4条交叉连接sql语句。下面是语句,但我只想得到2个语句

Select Dept_ID From Dept_Table Where Emp_Name = 'Scott' And Emp_ID = 1
Select Dept_ID From Dept_Table Where Emp_Name = 'Scott' And Emp_ID = 2
Select Dept_ID From Dept_Table Where Emp_Name = 'Jones' And Emp_ID = 1
Select Dept_ID From Dept_Table Where Emp_Name = 'Jones' And Emp_ID = 2
我希望得到如下输出:

Select Dept_ID From Dept_Table Where Emp_Name = 'Scott' And Emp_ID = 1
Select Dept_ID From Dept_Table Where Emp_Name = 'Jones' And Emp_ID = 2

如果要迭代两个等长数组,可以对两个数组使用一个Foreach对象和一个索引

$emp_id = 1,2
$emp_name = 'scott','jones'
$query = "Select Dept_ID From Dept_Table Where Emp_Name = '{0}' And Emp_ID = {1}"

0..($emp_id.Count-1) | Foreach-Object { $query -f $emp_name[$_],$emp_id[$_] }
说明:


$emp_id.Count返回$emp_id数组中项目2的数量。因为索引从0开始,所以这里只需要索引[0]和[1]$query是带有占位符{0}和{1}的查询字符串,用于-f。然后Foreach对象为每个索引创建一个查询,用每个数组中相同的元素替换一个元素。

如果要在两个等长数组上迭代,可以对两个数组使用一个Foreach对象和一个索引

$emp_id = 1,2
$emp_name = 'scott','jones'
$query = "Select Dept_ID From Dept_Table Where Emp_Name = '{0}' And Emp_ID = {1}"

0..($emp_id.Count-1) | Foreach-Object { $query -f $emp_name[$_],$emp_id[$_] }
说明:

$emp_id.Count返回$emp_id数组中项目2的数量。因为索引从0开始,所以这里只需要索引[0]和[1]$query是带有占位符{0}和{1}的查询字符串,用于-f。然后Foreach对象为每个索引创建一个查询,用每个数组中相同的元素替换一个元素。

它位于Foreach-Object的内部。它位于Foreach对象的内部。