问题的核心:我正在尝试使用 VBScript 下载一个 650mb 的文件。任何超过 500mb 的文件都会失败并出现以下错误...
Error: Not enough storage is available to complete this operation
Code: 8007000E
Source: msxml3.dll
<-- 当使用 MSXML.XMLHTTP 或...
Source: WinHttp.WinHttpRequest
<-- 使用 WinHTTP 时
我正在使用这里的代码,包括 MSXML.XMLHTTP 和 WinHTTP(不是 wget)。我可以在任务管理器中观看的两个脚本都构建到刚刚超过 650mb,然后因上述错误而失败。脚本有效,如果我选择较小的文件,下载就可以了。
错误消息中引用的行.Write objHTTP.responseBody
适用于两者。
我发现其他一些人也有同样的问题,虽然似乎没有很多人试图用 vbscript 下载巨大的文件......我无法想象为什么。
我知道这不是空间问题(我有足够的硬盘空间),也不是内存问题(我有 4gb,物理内存在峰值时显示大约 70%)。在使用 WinHTTP 时,我还尝试设置 SetTimeouts 选项,详见此处(我什至将它们全部设置为 -1,无限超时),并尝试使用允许 SetTimeouts 的 MSXML.ServerXMLHTTP,两者都是不行的
背景:我正在尝试编写一个vbscript来为大量用户自动下载和安装一套软件。因为它将分发给很多人,所以我想在 Windows 中本地进行,因为我不确切知道他们可能拥有或不拥有哪些其他软件。这极大地限制了我的选择。Powershell 策略设置为受限,所以我不能在其他计算机上使用它,而不是详细说明如何为他们重置它,这违背了应该为非技术用户做所有事情的脚本的目的。这几乎留下了vbscript。
如果没有其他方法可以做到这一点,那么我的下一步可能是自动下载和安装较小的文件,例如 wget,然后使用它来下载较大的文件。不过,我还是想用最少的本机软件来做到这一点。似乎这应该是可能的,但我找不到解决方案。
编辑:作为新用户,我不能发布超过 2 个链接,所以你只需要相信我已经发现其他人有这个问题,但他们的线程没有答案(这里或其他任何地方)。