Lotus notes 带有通配符的匹配模式存在问题

Lotus notes 带有通配符的匹配模式存在问题,lotus-notes,lotusscript,Lotus Notes,Lotusscript,我正在编写一个lotusscript代理,它将每5分钟运行一次,如果服务器上的SEMDEBUG.TXT日志文件超过某个阈值,它将发送电子邮件警报。访问此文件的代码如下所述 strSemDebugFilePath$ = "D:\IBM\Domino\Data\IBM_TECHNICAL_SUPPORT\SEMDEBUG_<server_name>_" & CStr(Year(Now())) & "_" & strMonth &"_" & strD

我正在编写一个lotusscript代理,它将每5分钟运行一次,如果服务器上的SEMDEBUG.TXT日志文件超过某个阈值,它将发送电子邮件警报。访问此文件的代码如下所述

strSemDebugFilePath$ = "D:\IBM\Domino\Data\IBM_TECHNICAL_SUPPORT\SEMDEBUG_<server_name>_" & CStr(Year(Now())) & "_" & strMonth &"_" & strDay & "@" & strHour & "_" & strMin & "_*.TXT"

strSemDebugFileName$ = Dir$(strSemDebugFilePath$,0)
strMin = CStr(Minute(Now()))
    If Int(strMin) > 5 Then
        strMin = CStr(Int(strMin)-5)
    End If
    If Len(strMin)=1 Then
        strMin="0"&strMin
    End If
strSemDebugFilePath$ = "D:\IBM\Domino\Data\IBM_TECHNICAL_SUPPORT\SEMDEBUG_<server_name>_" & CStr(Year(Now())) & "_" & strMonth &"_" & strDay & "@" & strHour & "_" & "[00-strMin]" & "_*.TXT"
现在的问题是,我正在使用模式匹配[0-strMin]来代替代码行中的变量strMin,该变量将访问SEMDEBUG.TXT文件,但由于某种原因,它不起作用。下面提到了最后一行代码

strSemDebugFilePath$ = "D:\IBM\Domino\Data\IBM_TECHNICAL_SUPPORT\SEMDEBUG_<server_name>_" & CStr(Year(Now())) & "_" & strMonth &"_" & strDay & "@" & strHour & "_" & strMin & "_*.TXT"

strSemDebugFileName$ = Dir$(strSemDebugFilePath$,0)
strMin = CStr(Minute(Now()))
    If Int(strMin) > 5 Then
        strMin = CStr(Int(strMin)-5)
    End If
    If Len(strMin)=1 Then
        strMin="0"&strMin
    End If
strSemDebugFilePath$ = "D:\IBM\Domino\Data\IBM_TECHNICAL_SUPPORT\SEMDEBUG_<server_name>_" & CStr(Year(Now())) & "_" & strMonth &"_" & strDay & "@" & strHour & "_" & "[00-strMin]" & "_*.TXT"
strSemDebugFilePath$=“D:\IBM\Domino\Data\IBM\u技术支持\SEMDEBUG\uuuuuuuuuuuuuuuu&CStr(Year(Now())&”&“&strMonth&“&strDay&”&“@”&strHour&“&uuuuuuu&”&“[00 strMin]”和“&u*.TXT”
上一行中的模式匹配[00 strMin]无效。它没有返回正确的结果。任何建议都将不胜感激

注:我也尝试过下面的模式匹配,只是为了验证字符列表中的匹配是否有效。但除了通配符*,它们都无法正常工作。 [0-9], [0-90-9], [#] 以上这些都不起作用。 在匹配“.TXT”部分之前,我在代码中也使用了*功能,它工作得非常好。

可以在fileSpec中使用标准通配符来指定所有 满足通配符条件的文件。星号(*)表示 文件名或扩展名指定所有文件中的任何字符 这个位置。问号(?)在任意字符位置 名称的一部分指定该位置的任何单个字符

它没有提到“#”或像“[00-99]”这样的范围,这让我得出结论,这种模式匹配是不受支持的


在我看来,您可能需要使用Dir$和“*”或“?”以及的组合来做您想做的事情。

它不应该是
strSemDebugFilePath$=“D:\IBM\Domino\Data\IBM_技术支持\SEMDEBUG_uuu”&CStr(Year(Now())&“&strMonth&”&strDay&“@”&strHour&“&strum&”&[00-”&strMin&&“*.TXT”
Richard是对的,Dir函数依赖于只提供primative模式匹配的操作系统。一种替代方法是使用Dir返回一组可能的匹配(例如SEMDEBUG_*),然后迭代它返回的内容,并在每个操作系统上使用模式匹配,直到找到要查找的内容。(我过去使用过一个名为from LS for RegEx的java类。)当然,如果您正在这样做,您也可以只构建字符串并进行简单的旧字符串比较。谢谢Richard,这是对的。Dir$函数中不支持模式匹配。我已经按照Duston的建议修改了代码。我正在使用“Like”操作符在迭代中匹配模式。模式匹配在这里工作,但不支持单独而言,我无法在模式中使用变量。它对[0-9]等硬编码数字有效。但指定“['&strimdiff&'-'&strim&']]”等变量无效。尝试了不同的方法,但没有成功。修改后的代码粘贴如下:
如果strsemdebug\u VMPWAO2_2;&CStr(Year(Now())&“&strMonth&”_“&strDay&“@”&strHour&“&strMinDiff&'-'&strMin&']”和“&strMin&']”如果