powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как быстро найти файлы на скриптовом языке?
25 сообщений из 30, страница 1 из 2
Как быстро найти файлы на скриптовом языке?
    #36854970
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я знаю, как искать файлы через коллекцию Files объекта Scripting.FileSystemObject
Но это долго, хочется чтобы объект сразу искал файлы по маске, причем с учетом субдиректорий.
Можно получить такое счастье?
...
Рейтинг: 0 / 0
Как быстро найти файлы на скриптовом языке?
    #36855972
Фотография k0rvin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fixin, ээ, на каком именно языке? в *никсах, например, есть программа find, которой можно воспользоваться из любого шелл-скрипта
...
Рейтинг: 0 / 0
Как быстро найти файлы на скриптовом языке?
    #36856201
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fixin,

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

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

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

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

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

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

Всего.

Думаю ее конечно же хватит, но не хотелось бы запускать процессы для поиска файлов. Ищу COM-объект таки.
...
Рейтинг: 0 / 0
Как быстро найти файлы на скриптовом языке?
    #36867158
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Покажи самодостаточный кусок кода, который использует Scripting.FileSystemObject и может я чего-нибудь придумаю.
...
Рейтинг: 0 / 0
Как быстро найти файлы на скриптовом языке?
    #36867167
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
Как быстро найти файлы на скриптовом языке?
    #36867169
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kew,

а этот курсор

Код: plaintext
SELECT * FROM CIM_DataFile 

все-все файлы перебирает?
...
Рейтинг: 0 / 0
Как быстро найти файлы на скриптовом языке?
    #36867170
Kew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Насколькоя знаю, в 2000 и XP -- все :)
...
Рейтинг: 0 / 0
Как быстро найти файлы на скриптовом языке?
    #36867176
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если указать Path LIKE 'WINDOWS\%' он переберёт только файлы в WINDOWS или в WINDOWS + рекурсивно все подкаталоги?
...
Рейтинг: 0 / 0
Как быстро найти файлы на скриптовом языке?
    #36867179
Kew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, переберет. Проблема тут как раз в том что он ВООБЩЕ ВСЕ переберет. :) Это подходит для выделенных разделов где часто ищутся большие объемы файлов. (Чистка кэшей например).
...
Рейтинг: 0 / 0
Как быстро найти файлы на скриптовом языке?
    #36867181
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Некоторые особо крупные разделы проще отмонтировать, форматнуть и снова подключить чем удалять по файлам. Я встречал такие файловы сервера, где даже rd /s работает целые сутки.
...
Рейтинг: 0 / 0
Как быстро найти файлы на скриптовом языке?
    #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
Как быстро найти файлы на скриптовом языке?
    #36871327
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kew
Ну, есть, например, такой.

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

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

А не, не подходит никак. У меня UNC-пути, а не локальные пути...
Как быть, вопрос по прежнему актуален...
...
Рейтинг: 0 / 0
Как быстро найти файлы на скриптовом языке?
    #36898042
Фотография Relic Hunter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FixinА не, не подходит никак. У меня UNC-пути, а не локальные пути...
Как быть, вопрос по прежнему актуален... не проблема ;) WSS...
...
Рейтинг: 0 / 0
Как быстро найти файлы на скриптовом языке?
    #36926389
Fixin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Relic Hunter WSS...
Я бы не хотел выслушивать шутки.
Вы умеете программно управлять WSS?
...
Рейтинг: 0 / 0
Как быстро найти файлы на скриптовом языке?
    #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]