好的。我是 powershell 的新手,但这让我很伤心。下面的代码从不返回状态代码或状态描述。我什至尝试过尝试并抓住它。我做错了什么?
$url = "https://download.microsoft.com/download/3/d/c/3dcc9642-d3a0-459c-86fd-
128f5a0c3cc5/Windows10Upgrade9252.exe"
$output = "c:\Temp\upgrade.exe"
$Result = Invoke-WebRequest -Uri $url -OutFile $output -ErrorAction Stop
$StatusCode = $Result.StatusCode
$StatusDescription = $Result.StatusDescription
Write-Host " Download Status Code: " $StatusCode
Write-Host "Download Status Description: " $StatusDescription
答案 0 :(得分:1)
Invoke-WebRequest
默认返回响应对象。
如果您使用 -OutFile
选项,则响应将保存到给定文件中,并且 cmdlet 不会返回任何内容。因此 $Result
为空,您不会得到任何状态代码。
如果要保存响应对象并将响应保存到文件中,则必须使用 -PassThru
开关。在这种情况下,$Result
是一个 WebResponseObject
类型的对象。
对于 Invoke-WebRequest
cmdlet,-PassThru
开关仅在使用 -OutFile
选项时有效
注意:-PassThru
开关是 cmdlet 的常见模式,通常有很好的文档记录