Выполните команду "cmd / c" в foreach УНИКАЛЬНО - PullRequest
0 голосов
/ 03 октября 2018

У меня есть сценарий, который запускает команду для запуска сценария PowerShell с именем Process.ps1 для обработки некоторых кубов в таблице.

$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
}

По какой-то причине он выполняет обработку на том же кубе ДВАЖДЫ,

Как я могу добавить аспект "УНИКАЛЬНЫЙ" к команде cmd /c "runPowerShell.bat $Script $($CUBE)", чтобы при повторном возврате того же $CUBE он игнорировался и выполнялся цикл для обработки другого куба?

Существует Select-Object -Unique, но это для объектов, а не команд ...

1 Ответ

0 голосов
/ 03 октября 2018

Я понял это.

Я изменил свой оператор запроса следующим образом:

$Table = Query "SELECT DISTINCT[cube_name], [sequence] from [dbo].[$cubeTable] WHERE [application] = '$App_input' ORDER BY [sequence]"

Теперь он просто хранит один отдельный куб, поэтому cmd /c "runPowerShell.bat $Script $($CUBE)" запускает только этот кубик один раз

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...