Проблема с совпадением шаблона с подстановочными знаками

Я пишу агент 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)

Поскольку этот агент запускается каждые 5 минут, я установил значение переменной strMin так, чтобы оно уменьшалось на 5 минут по сравнению с текущим временем, чтобы при запуске агента он проверял, не превышал ли размер файла журнала пороговое значение в прошлом. 5 минут. Строка кода для этого упоминается ниже.

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

Теперь проблема в том, что я использую сопоставление с шаблоном [0-strMin] вместо переменной strMin в строке кода, которая будет обращаться к файлу SEMDEBUG.TXT, и по какой-то причине это не работает. Итак, последняя строка кода упоминается ниже.

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

Сопоставление с шаблоном [00-strMin] в приведенной выше строке не работает. Это не возвращает правильный результат. Любые предложения будут очень признательны.

PS: Я также попробовал приведенные ниже сопоставления с образцом, чтобы проверить, работает ли сопоставление в списке символов или нет. Но ни один из них не работает отдельно от подстановочного знака *. [0-9], [0-90-9], [#] Ничего из вышеперечисленного не работает. Работает только *, который я также использовал в коде перед сопоставлением для части ".TXT", и он работает абсолютно нормально.

1 ответ

Документация для функции Dir$ говорит

Стандартные символы подстановки могут использоваться в fileSpec для обозначения всех файлов, удовлетворяющих критерию подстановки. Звездочка ( *) для имени файла или расширения обозначает все файлы с любыми символами в этой позиции. Знак вопроса (?) В любой позиции символа в любой части имени обозначает любой отдельный символ в этой позиции.

Он ничего не говорит о "#" или диапазонах, таких как "[00-99]", что приводит меня к выводу, что такой тип сопоставления с образцом не поддерживается.

Мне кажется, что вам, вероятно, придется использовать комбинацию Dir$ с "*" или "??" и тому подобное, чтобы делать то, что вы хотите.

Другие вопросы по тегам