如何使用Array在VBScript中搜索和删除文件夹

时间:2015-10-05 11:55:21

标签: vbscript

刚开始使用VBScript在服务器上自动执行某项任务。 如何利用VBScript中的数组来搜索和删除某些文件夹?

2 个答案:

答案 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()函数完成(这可以是您喜欢的任何函数),它将文件夹作为输入参数。

ForFor Each

由于MC NDpointed 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

spoon feeding

这么多

对于请求的任务,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/