0
我需要遞歸地通過C:\ Users目錄樹遞歸搜索多個文件。VBS在C: Users中遞歸搜索多個文件
如果我在任何子目錄中找到任何指定的文件,我想回顯完整路徑。
以下是我有:
Dim fso,folder,files,sFolder,newFolder
Dim arr1
arr1 = Array("myFile1.pdf","myFile2.pdf","myFile3.pdf","nutbag.rtf","whoa.txt")
Set fso = CreateObject("Scripting.FileSystemObject")
sFolder = "C:\Users"
Set folder = fso.GetFolder(sFolder)
Set files = folder.SubFolders
For each folderIdx In files
IF (Instr(folderIdx.Name,"Default") <> 1) Then
If (Instr(folderIdx.Name,"All Users") <> 1) Then
newFolder = sfolder & "\" & folderIdx.Name
CopyUpdater fso.GetFolder(newFolder)
End If
End If
Next
Sub CopyUpdater(fldr)
For Each f In fldr.Files
For Each i in arr1
If LCase(f.Name) = i Then
WScript.echo(f.name)
End If
Next
Next
For Each sf In fldr.SubFolders
CopyUpdater sf
Next
End Sub
如果我運行它作爲「管理員」,我得到:
VBScript runtime error: Permission Denied
如果我運行它作爲「本地系統」的用戶,我得到:
VBScript runtime error: Path not found
如果我在開頭添加'On Error Resume Next'來抑制錯誤,我什麼都沒有回來。
我已經在C:\ Users子目錄的許多位置放置了一個名爲'whoa.txt'的文本文件。
我懷疑它是Windows權限的東西,但我不確定。
非常感謝。
爲什麼不發佈錯誤發生的行號? 'C:\ Users'中的用戶配置文件文件夾是安全的。你爲什麼只調暗你的一些變量?您正在使用'LCase()'將文件名轉換爲小寫,但許多您搜索的文件不是小寫字母('myFile1.pdf','myFile2.pdf'等)。爲什麼要將一組子文件夾分配給一個名爲'files'的變量? (其中一些批評並不會真正影響你的劇本,但是它們讓閱讀變得更加困難)。 – Bond 2014-09-04 12:45:14