По юридическим причинам моя компания пытается удалить определенную аббревиатуру из всей нашей файловой системы. Поиск возвращает почти 30 000 экземпляров указанной аббревиатуры. Я написал следующую VBS, используя предложения здесь , чтобы попытаться сделать процесс рекурсивным. К сожалению, я не смог правильно его реализовать.
В строке 3 появляется ошибка «Недопустимый вызов процедуры или аргумент».
Если я отредактирую его для ссылки на корневую папку, вместо этого я получу требуемый объект: ошибка «Файл» в строке 18.
Set objFso = CreateObject("Scripting.FileSystemObject")
Set Folder = objFSO.GetFolder("<folderpath>")
TraverseFolders objFso.GetFolder(strPath)
Function TraverseFolders(fldr)
For Each File In Folder.SubFolders
sNewFile = File.Name
sNewFile = Replace(sNewFile, "old acronym", "new acronym")
If (sNewFile <> File.Name) Then
File.Move(File.ParentFolder + "\" + sNewFile)
End If
Next
For Each sf In fldr.SubFolders
TraverseFolders sf
Next
sNewFile = File.Name
sNewFile = Replace(sNewFile, "old acronym", "new acronym")
If (sNewFile <> File.Name) Then
File.Move(File.ParentFolder + "\" + sNewFile)
End If
End Function
Чего мне не хватает, чтобы заставить это работать рекурсивно?