vbs类型不匹配:[string]

时间:2013-06-15 00:03:20

标签: types vbscript mismatch

我有以下代码给我一个错误,我无法理解为什么。

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objDir = objFSO.GetFolder(strOrigDir)
Set colFiles = objDir.Files

For Each strFile in colFiles
Select Case Right(strFile,3)
    Case "rar"
        strTarFile = strFile
        intIsRar = 1
        Exit For
    Case "avi" or "mkv" or "mp4"
        strTarFile = strFile
        Exit For
    Case Else
        WScript.Quit
End Select
Next

我在Type mismatch: '[string:"avi"]'行收到了Select Case消息,我无法理解原因。我已经使用VarType检查了strFile的值,以确保我不会发疯,并尝试将字符串与我不应该的字符串进行比较(VarType返回8)。任何想法为什么这是不正确的?

1 个答案:

答案 0 :(得分:4)

问题在于Select Case语句的语法。如果您需要多个案例,则需要使用以逗号分隔的列表:

Select Case Right(strFile,3)
    Case "rar"
        strTarFile = strFile
        intIsRar = 1
        Exit For
    Case "avi", "mkv", "mp4"
        strTarFile = strFile
        Exit For
    Case Else
        WScript.Quit
End Select

“类型不匹配”可能正在发生,因为它试图将"avi" or "mkv" or "mp4"评估为布尔语句。