刚开始使用VBScript在服务器上自动执行某项任务。 如何利用VBScript中的数组来搜索和删除某些文件夹?
答案 0 :(得分:2)
阵列非常适合您想要关注DRY prinicple。
的情况对于这项任务,我会使用一个简单的1维数组来列出你想要处理的所有文件夹位置,如下所示;
Dim folders, items, item
folders = Array( _
"c:\folder1\subfolder1" _
, "c:\folder2" _
, "f:\folder1\subfolder1\subfolder1" _
)
'Check we have a valid array
If IsArray(folders) Then
items = UBound(folders)
For item = 0 to items
'Call the function that will do the work
Call DoTask(folders(item))
Next
End If
该示例假定处理由DoTask()
函数完成(这可以是您喜欢的任何函数),它将文件夹作为输入参数。
For
或For Each
?由于MC ND有pointed out,您可以使用For Each
,差异可以忽略不计,但值得指出。以下是使用For Each
的示例。
Dim folders, folder
folders = Array( _
"c:\folder1\subfolder1" _
, "c:\folder2" _
, "f:\folder1\subfolder1\subfolder1" _
)
'Check we have a valid array
If IsArray(folders) Then
For Each folder In folders
'Call the function that will do the work
Call DoTask(folder)
Next
End If
这么多
对于请求的任务,DoTask()
子过程看起来像这样。
Sub DoTask(folder)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists(folder) Then
Call fso.DeleteFolder(folder, True)
End If
Set fso = Nothing
End Sub
答案 1 :(得分:0)
SourceForge上的这个项目会创建和删除大量的VBScript文件夹,你可能会从中获得灵感。 http://sourceforge.net/projects/simple-gtd/