Я хочу получить доступ к результатам RegEx после завершения перемещения файлов с помощью этого сценария. (Например: я хочу позже отправить имена файлов, которые соответствуют шаблону регулярных выражений, на мой E-mail)
Проблема: невозможно использовать «objFile.Name» вне исходного цикла перемещения файлов, который я получаю во время регулярного выражения. Это должно было быть возможно с помощью метода «Execute» для RegEx, но, к сожалению, я не могу заставить его работать с коллекцией, полученной из «GetFolder (). Files», он работает только для отдельных строк.
Изначально у меня работал только метод Test, и он нормально работает при начальном перемещении файла, но затем я получаю ошибки времени выполнения, когда не могу получить доступ к объекту "objFile" позже.
Моя последняя попытка записать полученные совпадения в массив также не работает, ошибка:
Строка 26, 3
Объект не поддерживает это свойство или метод:
SubMatches '
Вот последняя попытка заставить этот код работать:
Set objFS = CreateObject("Scripting.FileSystemObject")
strDumpStorageDir = "C:\"
strShareDirectory = "E:\"
Set objFolder = objFS.GetFolder(strShareDirectory)
Set colFiles = objFolder.Files
Set re = New RegExp
re.Global = True
re.IgnoreCase = False
re.Pattern = "fs"
Dim matches()
Dim i: i = 0
For Each objFile in colFiles
bMatch = re.Test(objFile.Name)
If bMatch Then
objFS.MoveFile strShareDirectory & objFile.Name , strDumpStorageDir
End If
ReDim preserve matches(i)
Matches(i) = objFile.SubMatches(0)
i = (i + 1)
Next
For i = 0 to uBound(Matches)
wscript.echo Matches(i)
Next
WScript.Quit