【发布时间】:2018-03-18 05:19:06
【问题描述】:
我有一个 powershell 脚本,可以测量某些页面上的下载时间,但是我收到上面的错误,我不确定我做错了什么
错误是
无法将参数绑定到参数“InputObject”,因为它为空。
function ResponseTime($CommonName,$URL, $environment)
{
$Times = 5
$i = 0
$TotalResponseTime = 0
Write-HOst $URL
While ($i -lt $Times) {
$Request = New-Object System.Net.WebClient
$Request.UseDefaultCredentials = $true
$Start = Get-Date
Write-HOst $URL
$PageRequest = $Request.DownloadString($URL)
$TimeTaken = ((Get-Date) - $Start).TotalMilliseconds
$Request.Dispose()
$i ++
$TotalResponseTime += $TimeTaken
}
$AverageResponseTime = $TotalResponseTime / $i
Write-Host Request to $CommonName took $AverageResponseTime ms in average -ForegroundColor Green
$details = @{
Date = get-date
AverageResponseTime = $AverageResponseTime
ResponseTime = $Destination
Environment = $environment
}
$results += New-Object PSObject -Property $details
$random = Get-Random -minimum 1 -maximum 30
Start-Sleep -s $random
}
#PRODUCTION
ResponseTime -commonname 'app homepage' -URL 'https://url1' -environment 'PRODUCTION'
ResponseTime -commonname 'department homepage' -URL 'https://url2' -environment 'PRODUCTION'
$results | export-csv -Path c:\so.csv -NoTypeInformation
【问题讨论】:
-
您在哪一行收到错误消息?你尝试调试你的代码是什么?
-
Write-Host之后的消息是否有引号?即Write-Host "Request to $CommonName took $AverageResponseTime ms in average" -ForegroundColor Green -
在我刚刚添加到原始问题的最后一行中,我错过了抱歉。
-
ps。仅供参考,通常建议您在大多数情况下避免使用
Write-Host;有关更多信息,请参阅此帖子:stackoverflow.com/questions/38523369/… -
是的,所以
$results是空的。它应该是一个类似列表的对象,您可以在其中添加项目。
标签: powershell powershell-2.0 powershell-3.0