如何在VBS中使用%SYSTEMROOT%?

时间:2012-05-26 12:34:14

标签: vbscript

我使用此代码下载链接,我想在%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**

1 个答案:

答案 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变量来形成文件路径。