使用定时间隔执行While循环

时间:2015-05-27 16:41:32

标签: loops powershell

我每次尝试使用新搜索刷新搜索页面。

$i = 0
do {
   $srch = Get-Random
   Start-Process "http://www.swagbucks.com/?t=w&p=1&b=0&f=8&sef=0&q=$srch"
   $i++
}
while ($i -lt 5)

这会打开一个带有新链接的新标签页。我希望能够在同一个标​​签中打开链接并按时间间隔运行它。

1 个答案:

答案 0 :(得分:1)

您不想刷新页面,您希望每次迭代都加载一个新页面(因为您的URL的查询部分会随着每次迭代而变化)。

$delay = ...

$ie = New-Object -COM 'InternetExplorer.Application'
$ie.Visible = $true

$i = 0
do {
  $srch = Get-Random
  $url  = "http://www.swagbucks.com/?t=w&p=1&b=0&f=8&sef=0&q=$srch"

  $ie.Navigate($url)

  do {
    Start-Sleep -Milliseconds 100
  } until ($ie.ReadyState -eq 4)

  $i++

  Start-Sleep -Seconds $delay   # wait until next iteration
} while ($i -lt 5)

如果你想做一定数量的迭代,for循环可能更适合do循环,但是:

for ($i = 0; $i -lt 5; $i++) {
  $srch = Get-Random
  $url  = "http://www.swagbucks.com/?t=w&p=1&b=0&f=8&sef=0&q=$srch"

  $ie.Navigate($url)

  do {
    Start-Sleep -Milliseconds 100
  } until ($ie.ReadyState -eq 4)

  Start-Sleep -Seconds $delay   # wait until next iteration
}