我在表中有一些行,其中一列称为“ query_server”。
Invoke_ASCmd命令必须在不同的查询服务器(称为Destination_server)上调用两次(2行),如下所示:
foreach($row in $Table | where { $_.cube_name -match $CUBE -and $_.active -match $Active })
{
$Destination_Server = $row.Item("query_server")
$sync_output += "_$Destination_Server.txt"
Invoke-ASCmd –InputFile $XML_file -Server $Destination_Server >$sync_output
}
我尝试这样做,但是没有用
$i=0
foreach($row in $Table | where { $_.cube_name -match $CUBE -and $_.active -match $Active })
{
@($Destination_Server) = $row.Item("query_server")
$sync_output += "_$Destination_Server.txt"
Invoke-ASCmd –InputFile $XML_file -Server $Destination_Server[$i] >$sync_output
$i++
}
抛出错误:
- @($ Destination_Server)= $ row.Item(“ query_server”)
- ~~~~~~~~~~~~~~~~~~~~~~ 分配表达式无效。赋值运算符的输入必须是一个能够接受的对象 赋值,例如变量或属性。
- CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordException
- FullyQualifiedErrorId:InvalidLeftHandSide
答案 0 :(得分:0)
必须在foreach循环外初始化数组。否则,它仅在循环的单个实例中可用。
尝试一下:
$i=0
$Destination_Server = @()
foreach($row in $Table | where { $_.cube_name -match $CUBE -and $_.active -match $Active })
{
$Destination_Server += $row.Item("query_server")
$sync_output += "_$Destination_Server.txt"
Invoke-ASCmd –InputFile $XML_file -Server $Destination_Server[$Destination_Server.length -1] >$sync_output
$i++
}