在Windows下下载脚本文件

时间:2008-12-10 14:48:48

标签: windows internet-explorer batch-file proxy

我将被迫编写一个脚本来下载Windows XP下的一些文件。脚本将在其中运行的机器都在代理后面,并且代理设置被输入到IE配置中。

我想到的是以某种方式从命令行调用IE,并使用我需要的配置下载文件。甚至可以使用一些shell技术吗?

其他选项是在Win下使用wget,但我需要将代理设置传递给它。如何从IE配置中恢复这些设置?

3 个答案:

答案 0 :(得分:1)

原则上,我会采用wget方式,而不是以某种方式使用IE

配置脚本的路径存储在HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections\DefaultConnectionSettings的注册表中。它是一个二进制值,脚本地址从位置0x18开始,似乎是ASCII编码。

我不知道的是wget是否可以自行评估脚本,或者是否需要在脚本中明确解析脚本然后将代理地址传递给wget

答案 1 :(得分:1)

我同意Treb您应该更喜欢使用wget,并且可以在“HKCU \ Software \ Microsoft \ Windows \ CurrentVersion \ Internet Settings \ ProxyServer”中找到代理设置的路径

答案 2 :(得分:1)

使用JScript:

function ie_NavigateComplete2(pDisp, url)
{
    // output for testing
    WScript.Echo('navigation to', url, 'complete');
    // clear timer
    t = 0;
}

// create ActiveX object
var ie = WScript.CreateObject('InternetExplorer.Application', 'ie_');
ie.Height = 200;
ie.Width = 200;
ie.Visible = true;
ie.Navigate('http://www.example.com/worddoc.doc');
var t = (+new Date()) + 30000;
// sleep 1/2 second for 30 seconds, or until NavigateComplete2 fires
while ((+new Date()) < t)
{
    WScript.Sleep(500);
}
// close the Internet Explorer window
ie.Quit();

然后您使用start download.jscscript download.js调用它。你可以用VBScript做类似的事情,但是我对JScript感觉更舒服。

请注意,仅当ie.Navigate()的目标是提示打开/保存/取消的文件时,此方法才有效。如果它是在浏览器中打开的文件类型(如PDF),则IE将只打开资源,然后关闭窗口,可能不是您想要的。显然,您可以调整脚本以满足您的需求,例如在下载完成时不关闭IE窗口,或者使窗口变大等等。

有关可用的事件,方法和属性的更多信息,请参阅InternetExplorer Object documentation

使用此方法,您不必担心阅读Internet Explorer的代理设置,因为您使用Internet Explorer进行下载,所以会使用它们。