3

我是第一次使用 powershell。我已经学习了如何使用以下代码使用网络客户端下载文件。

$client = New-Object System.NET.Webclient
$client.DownloadFile( $url, $path )

这似乎很适合我最终尝试做的事情,即一次从网页下载多个文件。我在一个网站上试过这个,它的文件格式为 .pfva 文件,以 PDF 格式打开。没问题。这也是一个受密码保护的网站。

所以转移到我真正想要使用它的网站。同样,一个需要登录的站点,虽然我只是在浏览器上登录,然后运行 ​​webclient。可能是为什么我永远不必在命令脚本中通过身份验证....

此站点的文件格式为 .aspx 文件。它们将作为 PDF 文件打开。我可以简单地单击文件,保存或打开它,它自然地作为 PDF 文件工作。但是当我使用 webclient.download 文件时,它会下载到正确的位置......但是在尝试打开它时出现错误。

“Adobe 无法打开文件。它没有正确编码”……类似的东西。我现在无法收到消息,因为我在工作。下载的 URL 格式如下......

https://www.WebsiteABC.com/ShowDocument.aspx?DocPath=%7e%5cDocument%5cb75c6093-697a-4e59-bc26-fa2eb24f57f7%5cAUTHORIZATION.PDF

怎么打不开!!!有没有解决的办法。任何帮助,将不胜感激。谢谢!。

哦顺便说一句,我将 $path 设置为计算机目录中的 .PDF 文件...因为我读到应该提供文件的路径,而不仅仅是目录。

4

1 回答 1

7

看起来您的脚本在大多数情况下都有效。

我找到了这个页面,告诉用户代理 HTTP 标头字段对服务器很重要,所以试试这个:

$userAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2;)"
$url = "https://www.adobe.com/enterprise/pdfs/pdfarchiving.pdf"
$path = "c:\test.pdf"

$client = New-Object System.NET.Webclient
$client.Headers.Add("user-agent", $userAgent)
$client.DownloadFile( $url, $path )
于 2013-02-28T19:56:55.937 回答