从子文件夹

时间:2017-07-17 18:10:53

标签: vbscript automated-tests qtp

我在文件夹树中按月分组报告

  

" somepath \ YYYY \ MMMYYYY"

例如"somepath\2017\MAR2017"。 显然,Year文件夹中最多可能有12个文件夹"MMMYYYY"。 系统从名称中按月标识的最后一个文件夹上载文件。即在文件夹Jan2017,Feb2017,Mar2017中它应该从2017年3月起上载文件。

我尝试将foldername转换为数字:

Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim ObjFolder : Set ObjFolder = fso.GetFolder("somepath\2017\")
Set fc = ObjFolder.SubFolders 'here I should get all folders with months in their names
For each f in fc
a = Month("01-"&left(f.name, 3)&"-"&right(f.name, 4))
print a
Next

它打印下一个:

  

4

     

2

     

3

下一步应该从这些中识别出最大的数字,并将工作文件夹名称设置为

a = MonthName(maxnumber)&"2017"
workingfolder = "somepath\2017\"&a&"\"

如何识别最大数量或最大月数?

1 个答案:

答案 0 :(得分:1)

以下工作:

Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
Dim ObjFolder : Set ObjFolder = fso.GetFolder("somepath\2017\")
Set fc = ObjFolder.SubFolders
    For i=0 to fc.count
        For each f in fc
            a = Month("01-"&left(f.name, 3)&"-"&right(f.name, 4))
            Redim Preserve arr(fc.count)
            arr(i)=a
        Next
    Next
    arrLen = UBound(arr) 'Find the length of array
    For j= 0 to arrLen
     If arr(j) > max Then
        max=arr(j)
     End If
    Next
Dim OrgFolder : Set OrgFolder = fso.GetFolder(ObjFolder&"\"&MonthName(arr(0), True)&"2017\")