Увеличение до достижения номера - PullRequest
0 голосов
/ 13 сентября 2018

У меня есть номер, давайте используем 11 в качестве значения для примера. У меня есть точки доступа с именами (в данном случае) 0266AP1, 0266AP2, 0266AP3, 0266AP4 и так далее. 0266 это номер сайта / магазина.

Звоня в Cisco Prime API, я вижу, что на сайте 0266 есть 11 точек доступа. То, что я хочу сделать, чтобы действительно быстро передать список на мой контроллер, это приращение, пока я не достигну 11 или значения @count.

Function Get-AllApNames {
    Write-Verbose "Getting all APs for Store $Store"
    $req = "https://cpist/webacs/api/v3/data/AccessPointDetails.json?.group=$Store"
    Write-Verbose "Making request to $storeApReq"
    $idReq = Invoke-RestMethod -uri $storeApReq -method Get -ContentType 'application/json' -headers @{ Authorization = $auth }
    Write-Log "Making Get request to $storeApReq" -Level INFO -logfile $logFile
    $apIdCount =  $apIdListReq.queryResponse."@count"
    $apArray = New-Object System.Collections.ArrayList
}

Я удалил свои попытки, так как все они оказались пустыми, но я по сути хочу использовать $apIdCount в качестве точки остановки и 1 в качестве отправной точки.

Решение 1:

Function Get-AllApNames {
    Write-Verbose "Getting all APs for Store $Store"
    $req = "https://cpist/webacs/api/v3/data/AccessPointDetails.json?.group=$Store"
    Write-Verbose "Making request to $storeApReq"
    $idReq = Invoke-RestMethod -uri $storeApReq -method Get -ContentType 'application/json' -headers @{ Authorization = $auth }
    Write-Log "Making Get request to $storeApReq" -Level INFO -logfile $logFile
    $apIdCount =  $apIdListReq.queryResponse."@count"

    $apArray = New-Object System.Collections.ArrayList

    $apLoop = 1..$apIdCount

    foreach($i in $apLoop) {
        $accPt = $Store + 'AP' + $i
        Write-Host $accPt
    }
}

Ответы [ 2 ]

0 голосов
/ 13 сентября 2018

То, что вы описываете, называется for loop:

for ($i=1; $i -le $apIdCount; $i++) {
    $accPt = $Store + 'AP' + $i
    Write-Host $accPt
}

См. Также эту статью Technet о структурах управления циклами в PowerShell.

0 голосов
/ 13 сентября 2018

После упоминания о 1, являющейся моей отправной точкой, и $apIdCount, являющейся моей конечной точкой, я понял простой метод достижения этого.

Function Get-AllApNames {
    Write-Verbose "Getting all APs for Store $Store"
    $req = "https://cpist/webacs/api/v3/data/AccessPointDetails.json?.group=$Store"
    Write-Verbose "Making request to $storeApReq"
    $idReq = Invoke-RestMethod -uri $storeApReq -method Get -ContentType 'application/json' -headers @{ Authorization = $auth }
    Write-Log "Making Get request to $storeApReq" -Level INFO -logfile $logFile
    $apIdCount =  $apIdListReq.queryResponse."@count"

    $apArray = New-Object System.Collections.ArrayList

    $apLoop = 1..$apIdCount

    foreach($i in $apLoop) {
        $accPt = $Store + 'AP' + $i
        Write-Host $accPt
    }
}

Это выводит именно то, что я ищу.

0266AP1
0266AP2
0266AP3
0266AP4
0266AP5
0266AP6
0266AP7
0266AP8
0266AP9
0266AP10
0266AP11

Я не уверен, что это лучший способ справиться с этим, поэтому сейчас я оставлю это открытым для более опытных мнений!

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