我有一个脚本,该脚本运行命令以启动名为Process.ps1的PowerShell脚本,以处理表中的某些多维数据集。
$Table = Query "SELECT * from [dbo].[$cubeTable] WHERE [application] = '$App_input' ORDER BY [sequence]"
$i=0
$CUBE = @()
foreach($row in $Table)
{
Write-Host "`r`n---------------------------START of Script-----------------------------"
Write-Host "`r`n [Application] : $App_input"
Write-Host " [Script] : $Script"
$i++
$CUBE = $row.Item("cube_name")
$CUBE = $CUBE | Select-Object -Unique
#Write-Host " > CUBE $($i): $($CUBE[-1])`n"
cmd /c "runPowerShell.bat $Script $($CUBE)" #where $Script is Process.ps1 script that processes on each CUBE selected from table in order
}
由于某种原因,它在同一多维数据集TWICE上运行处理。
如何为cmd /c "runPowerShell.bat $Script $($CUBE)"
命令添加“唯一”方面,以便如果再次传递相同的$CUBE
,它将忽略它并循环处理下一个不同的多维数据集?
有一个Select-Object -Unique
,但那是对象而不是命令...
答案 0 :(得分:0)
我知道了。
我这样修改了我的查询语句:
$Table = Query "SELECT DISTINCT[cube_name], [sequence] from [dbo].[$cubeTable] WHERE [application] = '$App_input' ORDER BY [sequence]"
现在它仅存储一个不同的多维数据集,因此cmd /c "runPowerShell.bat $Script $($CUBE)"
仅运行一次该多维数据集