source

루프 X 횟수

lovecheck 2023. 8. 20. 11:57
반응형

루프 X 횟수

첫 PowerShell 스크립트를 작성하고 있는데 루프를 파악할 수 없습니다.

$ActiveCampaign을 여러 번 반복할 수 있는 다음 항목이 있습니다.

Write-Host "Creating $PQCampaign1 Pre-Qualified Report"
Invoke-Item "$PQCampaignPath1\PQ REPORT $PQCampaign1.qvw"
Write-Host "Waiting 1 minute for QlikView to update"
sleep -seconds 60 # Wait 1 minute for QlikView to Reload, create Report and Save.

DO{
    Write-Host "Daily Qlikview Reports"
    Write-Host "Wating for QlikView to create the $PQCampaign1 PQ Report"
    Get-Date
    Write-Host "Checking...."
    sleep -seconds 1
    Write-Host ""
    Write-Host "Not Done Yet"
    Write-Host "Will try again in 5 seconds."
    Write-Host ""
    sleep -seconds 5
}

Until (Test-Path "$PQCampaignPath1\$PQCampaign1 $PQReportName $ReportDate.xlsx" -pathType leaf)

Get-Date
Write-Host "Done with $PQCampaign1 PQ Report. Wait 10 seconds."
sleep -seconds 10

이러한 매개 변수는 각 루프에 대해 하나씩 증가해야 합니다.

  • $PQCampaign1(되야 함)$PQCampaign2그 다음 3 등)
  • $PQCampaignPath1(되야 함)$PQCampaignPath2그 다음 3 등)

그래서 만약에$ActiveCampaigns특정 날짜에 8로 설정된 다음 이 작업을 8회 반복하고 마지막으로 열어야 합니다.$PQCampaign3에 있는$PQCampaignPath8.

이걸 어떻게 고칠 수 있을까요?

사용:

1..10 | % { write "loop $_" }

출력:

PS D:\temp> 1..10 | % { write "loop $_" }
loop 1
loop 2
loop 3
loop 4
loop 5
loop 6
loop 7
loop 8
loop 9
loop 10

이것이 당신이 찾고 있는 것일 수 있습니다.

for ($i=1; $i -le $ActiveCampaigns; $i++)
{
  $PQCampaign     = Get-Variable -Name "PQCampaign$i"     -ValueOnly
  $PQCampaignPath = Get-Variable -Name "PQCampaignPath$i" -ValueOnly

  # Do stuff with $PQCampaign and $PQCampaignPath
}

PowerShell에서 여러 번 루프할 수 있는 간단한 방법은 다음과 같습니다.

이는 다음과 같습니다.for위에 루프가 있지만, 새로운 프로그래머와 스크립터는 훨씬 더 쉽게 이해할 수 있습니다.범위 및 각각에 대해 사용합니다.범위는 다음과 같이 정의됩니다.

range = lower..upper

또는

$range = 1..10

범위는 다음에서 직접 사용할 수 있습니다.for루프 역시 가장 최적의 접근 방식은 아니지만 성능 손실이나 처리에 대한 추가 지침은 눈에 띄지 않습니다.솔루션은 다음과 같습니다.

foreach($i in 1..10){
    Write-Host $i
}

또는 당신의 경우:

$ActiveCampaigns = 10
foreach($i in 1..$ActiveCampaigns)
{
    Write-Host $i
    If($i==$ActiveCampaigns){
        // Do your stuff on the last iteration here
    }
}

링크를 참조하십시오.PowerShell에서 동적으로 변수를 생성하는 방법을 보여줍니다.

기본 아이디어는 다음과 같습니다.

변수Get-Variable 사용,

for ($i=1; $i -le 5; $i++)
{
    New-Variable -Name "var$i" -Value $i
    Get-Variable -Name "var$i" -ValueOnly
}

(제공된 링크에서 가져온 것이며, 코드에 대한 크레딧은 받지 않습니다.)

언급URL : https://stackoverflow.com/questions/18488372/loop-x-number-of-times

반응형