【发布时间】:2013-12-29 09:36:11
【问题描述】:
所以,我有一个下载文件的 Powershell 脚本,例如
$mech = new-object System.Net.WebClient
$mech.DownloadFile('http://www.example.com/folder./index.html', 'out.html')
Note the trailing dot here ^
这不起作用(给出 404),查看发送的实际请求,结果发现尾随点被取出,这似乎源于此错误:https://connect.microsoft.com/VisualStudio/feedback/details/386695/
这似乎在 一些 版本的 .Net 中得到修复,但 Powershell 不使用这些版本(我在 Win7 中使用 PS2.0,它使用 .Net 2.0.50727.5472,也在 PS3 中尝试过.0 使用 .Net 4.0.30319.17929,两者都没有打补丁说明 .Net 4.5.something 已安装)
所以,这可能是一个简单的问题,但是,上面的链接中列出了一种解决方法,我将如何在 Powershell 中应用它?
或者,我如何让 Powershell 使用已修补的 .Net 版本(以及哪些版本已修补?)
我宁愿不使用 wget 等外部程序,否则我可能不会在 Powershell 中编写它,但是如果必须,它需要在 url 中支持 UTF8
另外,服务器对 .替换为 %2e
【问题讨论】:
-
Invoke-WebRequest(仅限 v3+)是否正常工作? -
不是刚刚在 Win8.1 机器上测试过(由于某种原因,我无法在 Win 7 上获得 PS4,安装了更新但它仍然是 V3...)并且也不起作用,我可能是错的,但所有涉及 URI 的命令行开关都由包含错误的 System.Uri 解析。
标签: .net powershell webclient