VBScript迭代设置级别的子文件夹

mar*_*igi 7 vbscript

好的,我有一个vbscript,遍历一个目录及其子文件夹来检索文件列表.这里的例子:

Set FSO = CreateObject("Scripting.FileSystemObject")
ShowSubfolders FSO.GetFolder("C:\Scripts")

Sub ShowSubFolders(Folder)
    For Each Subfolder in Folder.SubFolders
        Wscript.Echo Subfolder.Path
        ShowSubFolders Subfolder
    Next
End Sub
Run Code Online (Sandbox Code Playgroud)

现在这对于获得一个广泛的列表非常有用,但如果有一个深层文件夹层次,那么性能会很糟糕.

所以我的问题是,有没有办法编辑脚本的这一部分,以便它只迭代一定数量的子文件夹级别?由于文件夹结构的深度,钻取的理想数量级别将是3级.

cms*_*sjr 14

给你的递归调用一个退出条件ala

Set FSO = CreateObject("Scripting.FileSystemObject")
ShowSubfolders FSO.GetFolder("C:\Scripts"), 3 

Sub ShowSubFolders(Folder, Depth)
    If Depth > 0 then
        For Each Subfolder in Folder.SubFolders
            Wscript.Echo Subfolder.Path
            ShowSubFolders Subfolder, Depth -1 
        Next
    End if
End Sub
Run Code Online (Sandbox Code Playgroud)