0

我有以下代码给我一个错误,我不明白为什么。

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)。任何想法为什么这是不正确的?

4

1 回答 1

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"为布尔语句。

于 2013-06-15T05:13:04.640 回答