【问题标题】:Prevent VBScript Folder Loop From Looping Through Newly Created Folders防止 VBScript 文件夹循环循环通过新创建的文件夹
【发布时间】:2021-01-23 19:19:23
【问题描述】:
我有一个简单的循环遍历目录中的所有文件夹,如果某个条件为真,它会创建一个具有新文件夹名称的文件夹副本。
我的问题是,在创建新文件夹后,它会在循环的后面进行处理,我不希望这样。
循环正在检查文件夹名称,如果它是 7、6 或 5 个字符长,请执行特定操作。一个 7 位长度的文件夹被重命名为一个 6 位数的文件夹,但稍后在循环中新的 6 位数文件夹被包含并进一步处理。我不想要这个。
谢谢
【问题讨论】:
标签:
for-loop
foreach
vbscript
directory
【解决方案1】:
我最终使用 Dictionary 对象来保存原始文件夹列表,然后在继续之前检查循环文件夹是否存在于该列表中。
Set FSO = CreateObject("Scripting.FileSystemObject")
Set startingSubFoldColl = CreateObject("Scripting.Dicitonary")
Set Folder = FSO.GetFolder(*targetFolderPath*)
For Each Subfolder in Folder.Subfolders
startingSubFoldColl.add Cstr(Subfolder),Cstr(Subfolder)
Next
For Each SubFolder in Folder.Subfolders
If startingSubFoldColl.Exists(Cstr(Subfolder)) Then
'Do Stuff
End If
Next