Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как быстро найти файлы на скриптовом языке? / 25 сообщений из 30, страница 1 из 2
20.09.2010, 11:23
    #36854970
Fixin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
я знаю, как искать файлы через коллекцию Files объекта Scripting.FileSystemObject
Но это долго, хочется чтобы объект сразу искал файлы по маске, причем с учетом субдиректорий.
Можно получить такое счастье?
...
Рейтинг: 0 / 0
20.09.2010, 17:16
    #36855972
k0rvin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
Fixin, ээ, на каком именно языке? в *никсах, например, есть программа find, которой можно воспользоваться из любого шелл-скрипта
...
Рейтинг: 0 / 0
20.09.2010, 19:40
    #36856201
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
Fixin,

ленишся рекурсию закодить? Ай-ай-ай...
...
Рейтинг: 0 / 0
22.09.2010, 00:14
    #36859087
Fixin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
mayton,

Я как раз и кодю рекурсию, но это долго, коллекция Files содержит все файлы. Поиск по маске работал бы быстрее.
...
Рейтинг: 0 / 0
22.09.2010, 00:15
    #36859088
Fixin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
k0rvinFixin, ээ, на каком именно языке?
Нет, утилиты не годятся.
Нужнен стандартный системный COM-объект типа Scripting.FileSystemObject
Речь о винде.
...
Рейтинг: 0 / 0
22.09.2010, 00:26
    #36859102
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
Ну... ты можешь, используя внешние утилиты dis /s /b или find запустить внешний процесс, собрать список нужных тебе файлов и твоим скриптом это отработать. Но это - дурной тон.
...
Рейтинг: 0 / 0
23.09.2010, 07:45
    #36861462
tchingiz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
maytonНу... ты можешь, используя внешние утилиты dis /s /b или find запустить внешний процесс, собрать список нужных тебе файлов и твоим скриптом это отработать. Но это - дурной тон.
в смысле дурной тон?
...
Рейтинг: 0 / 0
23.09.2010, 10:48
    #36861687
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
При некотором стечении обстоятельств можно потерять производительность в разы за счёт накладных на вызов процесса. Блокирующий CreateProcess будет медленнее чем просто обращение к своей функции.
...
Рейтинг: 0 / 0
26.09.2010, 20:54
    #36867025
Fixin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
mayton,

а что, COM-объектов подходящих все-таки нету?
...
Рейтинг: 0 / 0
26.09.2010, 21:00
    #36867032
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
Fixin,

я не могу сходу ответить на этот вопрос т.к. не знаю. Но ты всё-таки сначала исследуй возможности этой утилиты и если её не хватит - приходи в форум с жалобами.

Всего.
...
Рейтинг: 0 / 0
26.09.2010, 23:07
    #36867139
Fixin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
maytonFixin,

я не могу сходу ответить на этот вопрос т.к. не знаю. Но ты всё-таки сначала исследуй возможности этой утилиты и если её не хватит - приходи в форум с жалобами.

Всего.

Думаю ее конечно же хватит, но не хотелось бы запускать процессы для поиска файлов. Ищу COM-объект таки.
...
Рейтинг: 0 / 0
26.09.2010, 23:55
    #36867158
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
Покажи самодостаточный кусок кода, который использует Scripting.FileSystemObject и может я чего-нибудь придумаю.
...
Рейтинг: 0 / 0
27.09.2010, 00:15
    #36867167
Kew
Kew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
Fixin Ищу COM-объект таки.
Ну, есть, например, такой.
Код: plaintext
1.
2.
3.
4.
Set svc = GetObject("winmgmts:\\.\root\CIMV2")
Set files = svc.ExecQuery("SELECT * FROM CIM_DataFile WHERE Drive LIKE 'C:' AND Path LIKE 'WINDOWS\System32%'", "WQL", &H30)
For Each file In files
   ...
Только будет ли от этого польза и/или удовольствие? (С)
...
Рейтинг: 0 / 0
27.09.2010, 00:18
    #36867169
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
Kew,

а этот курсор

Код: plaintext
SELECT * FROM CIM_DataFile 

все-все файлы перебирает?
...
Рейтинг: 0 / 0
27.09.2010, 00:21
    #36867170
Kew
Kew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
Насколькоя знаю, в 2000 и XP -- все :)
...
Рейтинг: 0 / 0
27.09.2010, 00:34
    #36867176
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
Если указать Path LIKE 'WINDOWS\%' он переберёт только файлы в WINDOWS или в WINDOWS + рекурсивно все подкаталоги?
...
Рейтинг: 0 / 0
27.09.2010, 00:37
    #36867179
Kew
Kew
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
Да, переберет. Проблема тут как раз в том что он ВООБЩЕ ВСЕ переберет. :) Это подходит для выделенных разделов где часто ищутся большие объемы файлов. (Чистка кэшей например).
...
Рейтинг: 0 / 0
27.09.2010, 00:40
    #36867181
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
Некоторые особо крупные разделы проще отмонтировать, форматнуть и снова подключить чем удалять по файлам. Я встречал такие файловы сервера, где даже rd /s работает целые сутки.
...
Рейтинг: 0 / 0
29.09.2010, 01:07
    #36871325
Fixin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
maytonПокажи самодостаточный кусок кода, который использует Scripting.FileSystemObject и может я чего-нибудь придумаю.
Пожалуйста, в VBA:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
Sub SearchSiteFilesServ(fs, Collection, Path, FileType, Counter)

    Set Folder = fs.GetFolder(Path)
    For Each File In Folder.Files
        OK = False
        ThisFileName = File.Path
        CheckHTML = (Right(File.Name,  3 ) = "htm" Or Right(File.Name,  4 ) = "html") And Left(File.Name,  2 ) <> "~$"
        CheckDOC = (Right(File.Name,  3 ) = "doc" Or Right(File.Name,  4 ) = "docx") And Left(File.Name,  2 ) <> "~$"
        CheckDOC2HTM = False
        If InStr( 1 , FileType, ";HTM;") <>  0  Then
            OK = OK Or CheckHTML
        End If
        If InStr( 1 , FileType, ";DOC;") <>  0  Then
            OK = OK Or CheckDOC
        End If
        If CheckDOC And InStr( 1 , FileType, ";DOC2HTM;") <>  0  Then
            SearchFileName = Replace(File.Path, ".doc", ".htm")
            SearchFileName = Replace(SearchFileName, ".docx", ".htm")
            
            If InStr( 1 , FileType, ";UPDATE;") <>  0  Then
                'Если файла нет, значит нужно обновлять...
                If fs.FileExists(SearchFileName) Then
                    Set SearchFile = fs.GetFile(SearchFileName)
                    CheckDOC2HTM = File.DateLastModified > SearchFile.DateLastModified
                Else
                    CheckDOC2HTM = True
                End If
            Else
                CheckDOC2HTM = fs.FileExists(SearchFileName)
            End If

            OK = OK And CheckDOC2HTM
        End If
       

        If OK Then
            Debug.Print File.Path
            Set ThisCollection = New Collection
            ThisCollection.Add File.Path, "FullName"
            ThisCollection.Add CheckHTML, "HTML"
            ThisCollection.Add CheckDOC, "DOC"
            ThisCollection.Add CheckDOC2HTM, "DOC2HTM"
            Collection.Add ThisCollection, File.Path
        End If
        Counter = Counter +  1 
        If Counter Mod  10  =  0  Then
            Application.StatusBar = Collection.Count() & " : " & File.Path
            DoEvents
        End If
        
    Next
    For Each SubFolder In Folder.SubFolders
        SearchSiteFilesServ fs, Collection, SubFolder.Path, FileType, Counter
    Next

End Sub

Public Sub ConvertDoc2HTMFiles()
    Set Files = SearchSiteFiles("DOC;DOC2HTM;UPDATE")
    KillAllWordProcesses
    Set Word = CreateObject("Word.Application")
    For Each File In Files
        FileName = File.Item("FullName")
        Application.StatusBar = File.Item("FullName")
        DoEvents
        ConvertDoc2HTMFile FileName, Word
    Next
    KillAllWordProcesses
    MsgBox "Convert Complete: " & Files.Count()

   
End Sub
...
Рейтинг: 0 / 0
29.09.2010, 01:08
    #36871327
Fixin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
Kew
Ну, есть, например, такой.

Только будет ли от этого польза и/или удовольствие? (С)

Ну вот это уже интереснее... ;-)
Мне нужно не удовольствие, а скорость. Спасибо, попробую, отпишусь
...
Рейтинг: 0 / 0
29.09.2010, 01:22
    #36871337
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
Fixin,
Вопщем называется оно Windows Indexing Service. Статью читать тут
...
Рейтинг: 0 / 0
13.10.2010, 18:21
    #36897877
Fixin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
Relic HunterFixin,
Вопщем называется оно Windows Indexing Service. Статью читать тут

А не, не подходит никак. У меня UNC-пути, а не локальные пути...
Как быть, вопрос по прежнему актуален...
...
Рейтинг: 0 / 0
13.10.2010, 19:29
    #36898042
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
FixinА не, не подходит никак. У меня UNC-пути, а не локальные пути...
Как быть, вопрос по прежнему актуален... не проблема ;) WSS...
...
Рейтинг: 0 / 0
28.10.2010, 18:16
    #36926389
Fixin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
Relic Hunter WSS...
Я бы не хотел выслушивать шутки.
Вы умеете программно управлять WSS?
...
Рейтинг: 0 / 0
28.10.2010, 19:34
    #36926532
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро найти файлы на скриптовом языке?
FixinRelic Hunter WSS...
Я бы не хотел выслушивать шутки.
Вы умеете программно управлять WSS?Не понял вопроса. Это "программное" управление чем-то особо отличается от других? Есть соответствующее сдк "Microsoft Windows Search 3.x SDK". Вот его и пользуйте. Хотя можно и апать топик. Мож хто-нить и напишет за вас "волшебные" скрипты задаром.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как быстро найти файлы на скриптовом языке? / 25 сообщений из 30, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]