2011-12-13 49 views
0

我是新来的VBScript,和我有一个功能,可以让我拉从首选项文件同步的喜好,和它看起来像这样:VBScript中的参数所需的对象?

Function IsSync(SyncFolder) 
    If FS.FileExists(PrefFilePath) Then 
     Set objFile = FS.OpenTextFile(PrefFilePath, 1) 
     PrefLine = "start" 
     Do Until Prefline.Substring(0, SyncFolder.Length) = SyncFolder 
      PrefLine = objFile.Readline 
     Loop 

     If PrefLine.Substring(PrefLine.Length - 6) = "nosync" Then 
      IsSync = False 
     Else 
      IsSync = True 
     End If 
    Else 
     IsSync = True 
    End If 
End Function 

但是当我尝试运行它时,Windows抛出我每次到达此函数时都会出现“Object required:SyncFolder”的错误。为什么是这样? SyncFolder只是一个参数?

回答

3

在VBScript中,每个变量有没有一些内置的方法。如果一个变量有一个属性或方法,这意味着它是一个对象。但是你的参数看起来不像一个对象,这就是错误发生的原因。
所以,没有内置的方法,如或其他在VBScript中的字符串变量。

  1. 使用Len函数来获取字符串,而不是 .Length的长度。
  2. 使用MidLeftRight功能哪一个,如果你需要,而不是.SubString

我猜你需要使用-with命令 -莱恩在这种情况下,右功能。

考虑一下:

Function IsSync(SyncFolder) 
    If FS.FileExists(PrefFilePath) Then 
     Set objFile = FS.OpenTextFile(PrefFilePath, 1) 
     PrefLine = "start" 
     Do Until Left(Prefline, Len(SyncFolder)) = SyncFolder 'starts with SyncFolder 
      PrefLine = objFile.Readline 
     Loop 

     If Right(PrefLine, 5) = "nosync" Then 'ends with "nosync" 
      IsSync = False 
     Else 
      IsSync = True 
     End If 
    Else 
     IsSync = True 
    End If 
End Function