Gavigor
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Ребята, помогите пожалуйста! Есть скрипт (ищет файл): Код: Option Explicit Dim objFSO Dim objDrive Dim strFileNameForFind Dim i ReDim arrPaths(0) ' Динамический массив для найденных путей strFileNameForFind = "111.txt" ' Имя файла для поиска. Set objFSO = WScript.CreateObject("Scripting.FileSystemObject") arrPaths(LBound(arrPaths)) = False ' Первый элемент массива - флаг результата поиска. For Each objDrive In objFSO.Drives ' Перебираем все существующие тома. If objDrive.DriveType = 2 Then ' Том фиксированный? If objDrive.IsReady Then ' Том готов? 'WScript.Echo "Find on drive " & objDrive.DriveLetter & ":..." FindInSubFolders objDrive.RootFolder, strFileNameForFind ' Вызываем процедуру поиска ' для корневой папки этого тома. ' Обработка вложенных папок будет ' вестись рекурсивно. End If End If next Sub FindInSubFolders(objFolder, strFileName) Dim objSubFolder Dim strFullFileName 'WScript.Echo objFolder.Path ' Выводим путь обрабатываемой папки (для ' отладки; имеет смысл закомментировать). strFullFileName = objFSO.BuildPath(objFolder, strFileName) ' Строим полный путь файла. If objFSO.FileExists(strFullFileName) Then ' Файл существует? ReDim Preserve arrPaths(Ubound(arrPaths) + 1) ' Увеличиваем размер массива. arrPaths(LBound(arrPaths)) = True ' Устанавливаем флаг результата поиска. arrPaths(UBound(arrPaths)) = strFullFileName ' Запоминаем путь. WScript.Echo "Found file [" & strFileName & "] in folder [" & objFolder.Path & "]." End If On Error Resume Next ' Обрабатываем ошибки, возможные в случае, ' когда нет доступа к содержимому папки ' (пример - «System Volume Information». For Each objSubFolder In objFolder.SubFolders If Err.Number = 0 Then ' Удалось получить доступ к содержимому папки? FindInSubFolders objSubFolder, strFileName ' Вызываем процедуру поиска для каждой из подпапок. Else ' Если не удалось — Err.Clear ' сбрасываем состояние ошибки и движемся дальше. 'WScript.Echo "Can't enumerate subfolders for folder [" & objFolder.Path & "]." End If Next On Error Goto 0 ' Восстанавливаем стандартную обработку ошибок End Sub | -нужно чтобы Копировался найденный файл в папку со скриптом и, если возможно, переименовывал при совпадении имен. у меня мозгов не хватает.... | Всего записей: 118 | Зарегистр. 27-04-2008 | Отправлено: 09:18 18-09-2009 | Исправлено: Gavigor, 09:23 18-09-2009 |
|