Batya

|
Posted: Fri Jan 27, 2006 19:03 Post subject: |
|
|
Code: | '========================================================================
' Сравнивание папок в панелях TC на имена и количество вложенных подпапок
' В параметрах вызова из TC должно быть прописано (2 пар. через пробел):
' %P %T
'========================================================================
Dim FSO, FoldAct, FoldPas, Fold, Fold1, objXL
Set FSO = CreateObject("Scripting.FileSystemObject")
Set FoldAct = FSO.GetFolder(WScript.Arguments(0))
Set FoldPas = FSO.GetFolder(WScript.Arguments(1))
Set objXL = WScript.CreateObject("Excel.Application")
objXL.Workbooks.Add
Dim i, j, C1, C2
i = 1
j = 1
C1 = 1
C2 = 4
objXL.Cells(i,C1).Value = FoldAct.Path
objXL.Cells(j,C2).Value = FoldPas.Path
For Each Fold in FoldAct.SubFolders
If Not FSO.FolderExists(FoldPas.Path & "\" & Fold.Name) Then
i = i + 1
objXL.Cells(i,C1).Value = Fold.Name
Elseif Fold.SubFolders.Count <> _
FSO.GetFolder(FoldPas.Path & "\" & Fold.Name).SubFolders.Count Then
i = i + 1
objXL.Cells(i,C1).Value = Fold.Name
For Each Fold1 in Fold.SubFolders
i = i + 1
objXL.Cells(i,C1+1).Value = Fold1.Name
Next
j = j + 1
objXL.Cells(j,C2).Value = Fold.Name
For Each Fold1 in FSO.GetFolder(FoldPas.Path & "\" & Fold.Name).SubFolders
j = j + 1
objXL.Cells(j,C2+1).Value = Fold1.Name
Next
End If
Next
For Each Fold in FoldPas.SubFolders
If Not FSO.FolderExists(FoldAct.Path & "\" & Fold.Name) Then
j = j + 1
objXL.Cells(j,2).Value = Fold.Name
End If
Next
objXL.Visible = True
Set FSO = Nothing
Set objXL = Nothing
Set Fold = Nothing
Set FoldAct = Nothing
Set FoldPas = Nothing
Wscript.Quit()
|
В соседней колонке (мне показалось так понятней) показываются вложенные подпапки для папок, у которых количество вложенных подпапок не совпадает.
Я решил, что для уникальных папок подпапки отображать не имеет смысла. Или надо? |
|