반응형
루프 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
반응형
'source' 카테고리의 다른 글
MVC 컨트롤러에서 개체 목록과 함께 JsonResult 반환 (0) | 2023.08.20 |
---|---|
Url.Action이 제 URL에 &을 넣었는데 어떻게 해결해야 하나요? (0) | 2023.08.20 |
자바스크립트를 사용하여 HTML 버튼을 비활성화하는 방법은? (0) | 2023.08.20 |
리턴 1, 리턴 0, 리턴 -1과 출구의 차이? (0) | 2023.08.20 |
두 인덱스에서 병합 조인이 여전히 정렬을 유발합니까? (0) | 2023.08.20 |