2011-02-23 48 views
0

我得到'變量是未定義的',我猜這與vbscript中的變量範圍有關,但我的知識限於此。VB腳本 - 未定義的變量

我知道加載的電子郵件地址的作品和實際的電子郵件,因爲我已經單獨檢查這些。我試圖通過一個電子郵件地址列表循環,並將日誌文件發送到每個..

任何額外的信息將是偉大的!

首先,有一個變種陣列在文件的頂部:

dim emails() 

function getEmailAddresses() 

    dim objFSO 
    dim objConfigFile 
    dim strLine 
    dim iCounter 

    const ForReading = 1, ForWriting = 2, ForAppending = 8 

    set objFSO = createobject("Scripting.FileSystemObject") 
    set objConfigFile = objFSO.OpenTextFile("emailAddresses.config", ForReading) 

    iCounter = 0 

    do while not objConfigFile.AtEndOfStream 
     redim preserve emails(iCounter) 
     strLine = trim(objConfigFile.ReadLine) 
     emails(iCounter) = strLine 
     iCounter = iCounter + 1 
    loop 

    objConfigFile.Close 

end function 

function writetolog(strLogtext) 
    dim objFSO 
    dim objLogfile 

    const ForReading = 1, ForWriting = 2, ForAppending = 8 

    set objFSO = createobject("Scripting.FileSystemObject") 
    set objLogfile = objFSO.OpenTextFile("xxx.log", ForAppending, true) 
    objLogfile.Writeline now() & " - " & strLogText 
    objLogfile.Close 

    call EmailLogFile(strLogText) 

end function 


function EmailLogFile(bodyText) 

    for each emailAddress in emails 

     set objEmail = CreateObject("CDO.Message") 
     objEmail.From = "[email protected]" 

     objEmail.To = emailAddress 
     objEmail.Subject = "File Move Log" 
     objEmail.Textbody = bodyText 
     objEmail.Configuration.Fields.Item _ 
      ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
     objEmail.Configuration.Fields.Item _ 
      ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _ 
     "xxxxxx" 
     objEmail.Configuration.Fields.Item _ 
      ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 
     objEmail.Configuration.Fields.Update 
     objEmail.Send 

    next 
end function 
+2

你忘了把'選項Explicit'聲明在頂部你的代碼。 **總是**,總是寫入VBScript並打開Option Explicit。 – 2011-02-23 14:15:29

回答

0

它看起來並不像你打電話getEmailAddresses()任何地方,你的文件也不會被讀取,你的emails陣列將不會填充

0

什麼線是未定義的VAR在哪裏?或者什麼是var名字?

無論哪種方式,'strLogText'沒有在任何地方定義。另外,如果這是一個傳統的ASP頁面,則在頂部放置一個Option Explicit語句。

+0

噢,未定義的變量是在電子郵件地址'emailAddresses'的循環中 – nik0lias 2011-02-23 14:04:27

+0

只需將'Dim emailAddresses'放在循環線之上,是否解決了這個問題? – 2011-02-23 14:06:40

+0

不怕,但這是循環變量,所以它懷疑它不會? – nik0lias 2011-02-23 14:08:52