vbscript error: Name Redifiined; Line 43: ExecuteGlobal sFileContents

vbscript error: Name Redifiined; Line 43: ExecuteGlobal sFileContents

来自具有非正式编码背景的业余脚本编写者的问题:

我已经在堆栈、msdn、随机脚本网站上对此进行了研究,但似乎无法找到具体的解决方案。因此请注意,即使解决方案很简单,这种求助也是最后的手段。

简而言之,我正在尝试调用一个函数,该函数将文件的最后修改日期解析为日期格式数组。文件路径是函数参数。这些文件是客户端测试环境中的 .vbs 文件。如果您查看脚本,这一点就会很明显。

我最好的猜测是 "name redefined" 错误与全局变量以某种方式变暗导致错误有关。

无论如何,这是调用子:

        Option Explicit



'=============================
'===Unprocessed Report========
'=============================




'*****Inputs: File Path*********************

dim strFolderPath, strFilename, strReportName, strFileExt, FullFilePath


        strFolderPath = "C:\Users\C37745\Desktop\"
        strFilename = "UNPROCESSED_REPORT"
        strReportName = "Unprocessed"
        strFileExt = ".xlsx"




'************************************

FullFilePath = strFolderPath & strFilename & strFilename & strFileExt

'************************************





Sub Include(MyFile)
  Dim objFSO, oFileBeingReadIn  ' define Objects
  Dim sFileContents     ' define Strings

  Set objFSO = CreateObject("Scripting.FileSystemObject")
  Set oFileBeingReadIn = objFSO.OpenTextFile(MyFile, 1)
  sFileContents = oFileBeingReadIn.ReadAll
  oFileBeingReadIn.Close
  ExecuteGlobal sFileContents
End Sub



Include "C:\Users\C37745\Desktop\VBStest\OtherTest\TEST_DLM.vbs"




''''''''''FOR TESTING''''''''''''''

Dim FilePath, varTEST

strFilePath = FullFilePath
varTEST = ParseDLMToArray(strFilePath)

msgbox varTESTtemp(0)

'''''''''''''''''''''''''''''''''

这是我要调用(或读取,我猜)的函数:

        Function ParseDLMtoArray(strFilePath)

Dim strFilePath, dlmDayD, dlmMonthM, dlmYearYY, dlmYearYYYY, DateFormatArray, dateDLM
Dim objFSO, File_Object


Set objFSO = CreateObject("Scripting.FileSystemObject")
Set File_Object = objFSO.GetFile(strFilePath)
dateDLM = File_object.DateLastModified



dlmDayD = Day(dateDLM)
dlmMonthM = Month(dateDLM) 
dlmYearYY = Right(Year(dateDLM),2)
dlmYearYYYY = Year(dateDLM)



'Adds a leading zero if a 1-digit month is detected
    If(Len(Month(dlmDayD))=1) Then
          dlmmonthMM ="0"& dlmMonthM
         Else
          dlmMonthMM = dlmMonthM
    End If



'Adds a leading zero if a 1-digit day is detected
    If(Len(Day(dlmDayD))=1) Then
       dlmDayDD = "0" & dlmDayD
    Else
       dlmDayDD = dlmDayD
    End If



varDLM_mmyyyy = dlmMonthMM & dlmYearYYYY
varDLM_mmddyy = dlmMonthMM & dlmDayDD & dlmYearYY
varDLM_mmddyyyy = dlmMonthMM & dlmDayDD & dlmYearYYYY


DateFormatArray = Array( _
        varDLM_mmyyyy, _
        varDLM_mmddyy, _
        varDLM_mmddyyyy _
        )



ParseDLMtoArray = DateFormatArray



End Function

我们将不胜感激任何建议,包括在您发现问题时对最佳做法的一般反馈。谢谢!

你的

Function ParseDLMtoArray(strFilePath)
  Dim strFilePath 
  ...

再次尝试 declare/define strFilePath。这显然是不允许的,因为无法确定该变量是否应包含 Empty(因为 Dim)或您传递的参数。

乍一看你的代码,你可以删除 Dim strFilePath