![Компьютерный форум OSzone.net](images/oszone.net.print.gif) |
|
bombording |
19-12-2013 11:54 2274834 |
Сравнить три списка имен файлов между собой.
Добрый день.
Имеются три папки:
Цитата:
Папка 1:
файл1
файл2
файл3
Папка 2:
файл9
файл10
файл11
Папка 3:
файл1
файл2
файл3
файл4
файл5
файл6
файл7
файл8
файл9
файл10
файл11
файл12
...
|
В папке номер 3 должны находится файлы из папки 1 и папки 2, а так же другие файлы.
Задача:
- Получить три списка файлов.
- Сравнить списки из папок 1 и 2 со списком 3.
- В случае если в списке 3 нет какого то файла из списка 1 или 2, выдать ошибку.
Я пока реализовал получение списка через FileSystemObject. А вот со сравнением у меня проблемы...
Помогите пожалуйста.
Код:
Option Explicit
Dim fso, f, f1, fc, s
Dim d, dc, d1
Dim e, ec, e1
Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.GetFolder("D:\test\1")
Set d = fso.GetFolder("D:\test\2")
Set e = fso.GetFolder("D:\test\3")
Set fc = f.Files
Set dc = d.Files
Set ec = e.Files
For Each f1 in fc
For Each d1 in dc
IF f1.name<>d1.name THEN
Wscript.Echo d1.name
ELSE
Wscript.Echo "No"
END IF
Next
Next
|
читать дальше »
Код:
Option Explicit
Dim strSourceFolder01
Dim strSourceFolder02
Dim strDestFolder
Dim objFile
Dim objDictionary
Dim elem
strSourceFolder01 = "C:\Песочница\036\01"
strSourceFolder02 = "C:\Песочница\036\02"
strDestFolder = "C:\Песочница\036\03"
With WScript.CreateObject("Scripting.FileSystemObject")
If .FolderExists(strSourceFolder01) Then
If .FolderExists(strSourceFolder02) Then
If .FolderExists(strDestFolder) Then
Set objDictionary = WScript.CreateObject("Scripting.Dictionary")
For Each objFile In .GetFolder(strSourceFolder01).Files
objDictionary.Add objFile.Name, objFile.Name
Next
For Each objFile In .GetFolder(strSourceFolder02).Files
If Not objDictionary.Exists(objFile.Name) Then
objDictionary.Add objFile.Name, objFile.Name
End If
Next
For Each elem In objDictionary.Items
If Not .FileExists(.BuildPath(strDestFolder, elem)) Then
WScript.Echo "выдать ошибку"
WScript.Quit 4
End If
Next
Else
WScript.Echo "Destination folder [" & strDestFolder & "] not found."
WScript.Quit 3
End If
Else
WScript.Echo "Source folder [" & strSourceFolder02 & "] not found."
WScript.Quit 2
End If
Else
WScript.Echo "Source folder [" & strSourceFolder01 & "] not found."
WScript.Quit 1
End If
End With
WScript.Quit 0
или:
читать дальше »
Код:
Option Explicit
Dim strSourceFolder01
Dim strSourceFolder02
Dim strDestFolder
Dim objFile
Dim objDictionary
Dim elem
strSourceFolder01 = "C:\Песочница\036\01"
strSourceFolder02 = "C:\Песочница\036\02"
strDestFolder = "C:\Песочница\036\03"
With WScript.CreateObject("Scripting.FileSystemObject")
If .FolderExists(strSourceFolder01) Then
If .FolderExists(strSourceFolder02) Then
If .FolderExists(strDestFolder) Then
Set objDictionary = WScript.CreateObject("Scripting.Dictionary")
For Each objFile In .GetFolder(strDestFolder).Files
objDictionary.Add objFile.Name, objFile.Name
Next
For Each objFile In .GetFolder(strSourceFolder02).Files
If Not objDictionary.Exists(objFile.Name) Then
WScript.Echo "выдать ошибку"
WScript.Quit 4
End If
Next
For Each objFile In .GetFolder(strSourceFolder01).Files
If Not objDictionary.Exists(objFile.Name) Then
WScript.Echo "выдать ошибку"
WScript.Quit 4
End If
Next
Else
WScript.Echo "Destination folder [" & strDestFolder & "] not found."
WScript.Quit 3
End If
Else
WScript.Echo "Source folder [" & strSourceFolder02 & "] not found."
WScript.Quit 2
End If
Else
WScript.Echo "Source folder [" & strSourceFolder01 & "] not found."
WScript.Quit 1
End If
End With
WScript.Quit 0
|
bombording |
19-12-2013 15:19 2274949 |
Iska, Большое спасибо.
Второй пример более понятный.
|
Время: 05:09.
© OSzone.net 2001-