Это действительно будет очень медленно с набором циклов for по той единственной причине, что даже когда он найдет файл, он продолжит поиск этого же файла в остальных 152000 документах. Таким образом, время потрачено 1500x152000.
VBScript может сделать это намного быстрее, потому что тогда вы можете выйти из цикла.
Целое может быть оптимизировано, даже если список файлов можно сузить до разделов, где он не будет искать все, если вы заранее знаете, что файлы не будут находиться в определенном месте, но это может быть необязательно.
Наконец, учитывая, что выполнение этого по сети невероятно замедлит работу, было бы неплохо скопировать все 152000 документов локально и выполнить поиск и копирование в них.
Если вы пишете VBScript и вам нужно выполнить это по сети, убедитесь, что VBScript редактирует список файлов и удаляет все файлы из списка, который он уже нашел. Это гарантирует, что вы можете остановить скрипт в любое время и продолжить позже.
Хотя SuperUser не является сервисом написания скриптов, я помогу вам дать то, какие команды вам понадобятся:
' Copy files to...
sDestination = "c:\some\path"
' get filenames in folder
sPath = "c:\some\path"
Set fso = createobject("Scripting.FileSystemObject")
Set oFolderContent = fso.GetFolder(sPath)
' open textfile and read its content
set oFileList = fso.OpenTextFile(sFilename, 8, false)
' Loop to go through all files in a folder
For Each oFile In oFolderContent.files
' Loop to go through all folders in a folder
For Each oFile In oFolderContent.folders
'break out of a for loop
exit for
'copy a file
fso.CopyFile oFile, sDestination
Если это слишком сложно, я предлагаю получить помощь в переполнении стека.