我使用此代码下载链接,我想在%SystemRoot%\system32
中保存文件,但用 C:\
替换 %SystemRoot%
时强>,VBS无法运行。
function download(sFileURL, sLocation)
'create xmlhttp object
Set objXMLHTTP = CreateObject("MSXML2.XMLHTTP")
'get the remote file
objXMLHTTP.open "GET", sFileURL, false
'send the request
objXMLHTTP.send()
'wait until the data has downloaded successfully
do until objXMLHTTP.Status = 200 : wcript.sleep(1000) : loop
'if the data has downloaded sucessfully
If objXMLHTTP.Status = 200 Then
'create binary stream object
Set objADOStream = CreateObject("ADODB.Stream")
objADOStream.Open
'adTypeBinary
objADOStream.Type = 1
objADOStream.Write objXMLHTTP.ResponseBody
'Set the stream position to the start
objADOStream.Position = 0
'create file system object to allow the script to check for an existing file
Set objFSO = Createobject("Scripting.FileSystemObject")
'check if the file exists, if it exists then delete it
If objFSO.Fileexists(sLocation) Then objFSO.DeleteFile sLocation
'destroy file system object
Set objFSO = Nothing
'save the ado stream to a file
objADOStream.SaveToFile sLocation
'close the ado stream
objADOStream.Close
'destroy the ado stream object
Set objADOStream = Nothing
'end object downloaded successfully
End if
'destroy xml http object
Set objXMLHTTP = Nothing
End function
download "http://remote-location-of-file", "C:\name-of-file-and-extension"
download "http://demo.com/test.gif", "C:\test.gif" **OK**
download "http://demo.com/test.gif", "%SystemRoot%\system32\test.gif" **Faild**
答案 0 :(得分:5)
您需要在 VBS 变量中读取环境变量。类似的东西:
Dim mySystemRoot
Dim myPath
Dim wshShell
Set wshShell = CreateObject( "WScript.Shell" )
mySystemRoot = wshShell.ExpandEnvironmentStrings( "%SystemRoot%" )
wshShell = Nothing
download "http://demo.com/test.gif", myPath & "\test.gif"
然后使用mySystemRoot
变量来形成文件路径。