Invoke-WebRequest传递url作为脚本参数(PowerShell)

时间:2016-12-02 16:44:53

标签: powershell

我正在尝试使用以下命令从网上下载文件

Invoke-WebRequest $url -OutFile $filePath -Headers $Headers

我有参数,其中包含此网址,并作为参数传递

[string]$artifactHttpAddress = $args[2]

目前它的价值是

http://10.45.48.26/httpAuth/repository/downloadAll/TeamCityTest_Build/529:id/artifacts.zip

因此,当我尝试使用以下命令调用WebRequest时 Invoke-WebRequest $artifactHttpAddress -OutFile c:/test.zip -Headers $Headers

正在下载空的zip文件。

但是当我尝试将此url分配给变量并调用Web请求时

$url = "http://10.45.48.26/httpAuth/repository/downloadAll/TeamCityTest_Build/529:id/artifacts.zip"
Invoke-WebRequest  $url -OutFile   c:/test.zip  -Headers $Headers

它工作正常,下载zip文件,里面有一些内容。

我尝试了以下脚本

Write-Host([string]$url -eq [string]$artifactHttpAddress) 
Write-Host([string]$url) 
Write-Host([string]$artifactHttpAddress) 

输出

 False
 http://10.45.48.26/httpAuth/repository/downloadAll/TeamCityTest_Build/528:id/artifacts.zip
 http://10.45.48.26/httpAuth/repository/downloadAll/TeamCityTest_Build/531:id/artifacts.zip

发生了什么以及为什么?

P.S。此脚本位于ScriptBlock

1 个答案:

答案 0 :(得分:2)

根据您的输出,我认为$url$artifactHttpAddress的值不同。 ZIP文件是否存在于其中包含531的URL中?