【问题标题】:Failed to write to file error - ADODB.stream无法写入文件错误 - ADODB.stream
【发布时间】:2017-11-18 15:31:38
【问题描述】:

我想从 Internet 下载带有 .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

【问题讨论】:

  • 从 Windows Vista 开始,您无法写入 C: 驱动器的根目录,除非您以提升的权限运行。
  • 噢噢噢。谢谢!

标签: windows vbscript windows-10 adodb


【解决方案1】:

虽然这可能看起来是一个编程问题,但实际上它与操作系统直接相关。您在 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?中所述

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

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

访问受保护的文件夹需要提升权限,当通过 Windows 脚本主机运行 VBScript 时,可以通过在管理员模式下启动命令提示符来完成(可从程序上下文菜单中获得)并调用 wscript.execsscript.exe 以及所需的脚本路径。

【讨论】:

    猜你喜欢
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-27
    • 2019-04-01
    • 1970-01-01
    • 2013-02-13
    相关资源
    最近更新 更多