无法写入文件错误 - ADODB.stream

时间:2017-11-18 04:46:34

标签: windows vbscript windows-10 adodb

我想使用.vbs文件从互联网上下载文件。我在这里得到了代码:Is it possible to download using the Windows command line?

它使用ADODB.stream将文件解压缩到我的C盘。我在Windows XP SP3上运行它,它工作正常。然后,当我尝试在Windows 10上运行它时,我收到了“无法写入文件”错误。我也在CMD中用“cscript.exe download.vbs”试了一下,发生了同样的事情。出现此错误的Windows XP和Windows 10有什么区别?可以修复吗?

以下是确切的代码:

strFileURL = "http://www.it1.net/images/it1_logo2.jpg"
strHDLocation = "c:\logo.jpg"
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
objXMLHTTP.open "GET", strFileURL, false
objXMLHTTP.send()
If objXMLHTTP.Status = 200 Then
Set objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
objADOStream.Type = 1 
objADOStream.Write objXMLHTTP.ResponseBody
objADOStream.Position = 0    
Set objFSO = Createobject("Scripting.FileSystemObject")
If objFSO.Fileexists(strHDLocation) Then objFSO.DeleteFile strHDLocation
Set objFSO = Nothing
objADOStream.SaveToFile strHDLocation
objADOStream.Close
Set objADOStream = Nothing
End if
Set objXMLHTTP = Nothing

1 个答案:

答案 0 :(得分:2)

虽然这似乎是编程问题,但实际上它与操作系统直接相关。您在Windows XP和Windows 10之间遇到的更改称为User Account Control (首次在Windows Vista中引入)

How do I get permissions to save in a folder that Windows 7 denies me from?

中所述
  

这是由于UAC(用户访问/帐户控制)在Windows Vista / 7上,并尝试写入受保护的文件夹。

在Windows 10中,系统驱动器的根目录(通常是安装操作系统的驱动器)被归类为受保护的文件夹。

访问受保护文件夹需要提升权限,通过Windows Scripting Host运行VBScript时,可以通过在管理员模式(可从程序上下文菜单中获取)中启动命令提示符并调用{{1带有所需脚本路径的{}或wscript.exe