2017-11-18 242 views
2

我想用.vbs文件從互聯網上下載文件。我在這裏得到了代碼:Is it possible to download using the Windows command line?無法寫入文件錯誤 - ADODB.stream

它使用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 
+4

從Windows Vista開始,除非使用提升的權限運行,否則無法寫入C:驅動器的根目錄。 – Squashman

+0

Ohhhhh。謝謝! – ZaneStudios

回答

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系統驅動器(通常是驅動安裝了OS)的根被歸類爲一個受保護的文件夾。

訪問受保護的文件夾需要提升的權限它通過Windows腳本宿主運行的VBScript時,可以通過與所需的腳本開始在管理員模式下的命令提示符(可從程序上下文菜單)並調用wscript.execsscript.exe完成路徑。

+1

謝謝!現在,它正在以Admin的身份運行它。 – ZaneStudios