43

初めての PowerShell スクリプトに取り組んでいますが、ループがわかりません。

$ActiveCampaigns回繰り返す次のものがあります。

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

これらのパラメーターは、ループごとに 1 ずつ増やす必要があります。

  • $PQCampaign1$PQCampaign2( 、その後 3 などに なるはずです)
  • $PQCampaignPath1$PQCampaignPath2( 、その後 3 などに なるはずです)

したがって$ActiveCampaigns、特定の日に が 8 に設定されている場合、これを 8 回繰り返す必要があり、最後に開く必要$PQCampaign3があるのは です$PQCampaignPath8

どうすればこれを修正できますか?

4

4 に答える 4

128

使用する:

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
于 2015-02-26T03:02:06.270 に答える
1

このリンクを参照してください。PowerShell で変数を動的に作成する方法を示します。

基本的な考え方は次のとおりです。

New-VariableGet-Variableを使用し、

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

(提供されたリンクから取得したものであり、コードの信用はありません。)

于 2013-08-28T12:51:25.490 に答える