如何在PowerShell http服务器状态检查脚本中的每个url之间设置时间延迟

如何在PowerShell http服务器状态检查脚本中的每个url之间设置时间延迟,powershell,Powershell,我使用下面的PS脚本检查URL列表的服务器状态 $linksFilePath = "C:\Temp\urls.txt" $outCSVPath = "C:\Temp\results.csv" get-content $linksFilePath | Foreach { $uri = $_; try { Invoke-WebRequest -Uri $uri -Method HEAD -MaximumRedirection 0 -ErrorAction

我使用下面的PS脚本检查URL列表的服务器状态

$linksFilePath = "C:\Temp\urls.txt"
$outCSVPath = "C:\Temp\results.csv"

get-content $linksFilePath |
 Foreach { $uri = $_; try { Invoke-WebRequest -Uri $uri -Method HEAD -MaximumRedirection 0 -ErrorAction SilentlyContinue -UseBasicParsing } catch { 
        New-Object -TypeName psobject -Property @{ Error = $_ } } } |
 Select @{Name="RequestURI";Expression={$uri}}, StatusCode, @{Name="RedirectTo";Expression={$_.Headers["Location"]}}, Error |
 Export-Csv $outCSVPath
我希望脚本在进入下一行并相应地将结果附加到我的results.csv文件之前,在myurls.txt列表中的每个url之间暂停x秒


这是可能的吗?

开始睡眠15
,或者在继续之前,你希望它停止多少秒看看@AbrahamZinala@Rno非常感谢。那么我应该把
启动睡眠
命令放在哪里呢?在
try之后的Foreach循环内部或
内部{调用WebRequest…
?让我们考虑一下这个问题。只要它在
Foreach
循环中,它就放在哪里并不重要,因为你每次都告诉它执行块中的代码。因此,如果你在
Foreach的开头放置
Start Sleep 10
{Start Sleep 10..
,它将在执行代码之前等待。也可以放在
Try
块中,或者放在解决它的任何一个块的末尾。我必须将它放在for循环的末尾,在Foreach{$uri=$\uu;Try的闭括号之前{Invoke WebRequest-Uri$Uri-Method HEAD-MaximumRedirection 0-ErrorAction SilentlyContinue-UseBasicParsing}catch{New Object-TypeName psobject-Property@{Error=${}}}Start Sleep 30}}