<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; WSH: Поиск файлов по маске на сервере]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=6335&amp;type=atom" />
	<updated>2011-10-19T08:17:42Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=6335</id>
		<entry>
			<title type="html"><![CDATA[Re: WSH: Поиск файлов по маске на сервере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52669#p52669" />
			<content type="html"><![CDATA[<p>Даже хочется сказать больше - возможности Log Parser впечатлили - вкуснейшая вещь!</p>]]></content>
			<author>
				<name><![CDATA[dab00]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27085</uri>
			</author>
			<updated>2011-10-19T08:17:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52669#p52669</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: Поиск файлов по маске на сервере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52667#p52667" />
			<content type="html"><![CDATA[<p><strong>dab00</strong>, спасибо, ясно.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-10-19T08:10:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52667#p52667</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: Поиск файлов по маске на сервере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52664#p52664" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Поясните, пожалуйста, Вашу мысль.</p></blockquote></div><p>Поясняю. Читал где-то, да и сам не раз убеждался в том, что работа с файлами через WMI медленнее, чем, например, через fso, а если в запросе присутствует LIKE - как, например, у меня в <a href="http://forum.script-coding.com/viewtopic.php?id=6009">USBMaster</a> при нажатии на кнопку &quot;Файлы&quot; - проверка наличия файлов INFCACHE.1 и oemX.inf - то, как Вы справедливо заметили, &quot;можно заработать рак лёгких, пока завершится опрос&quot;.<br />Что касается &quot;но пост был про скрипт&quot; - не знаком с утилитой Log Parser - почитал по ссылкам - забираю слова обратно, с Вашего позволения <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /> - интересная утилита.</p>]]></content>
			<author>
				<name><![CDATA[dab00]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27085</uri>
			</author>
			<updated>2011-10-19T07:59:51Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52664#p52664</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: Поиск файлов по маске на сервере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52660#p52660" />
			<content type="html"><![CDATA[<p>Всем огромное спасибо! Пока разбираюсь с логпарсером - уж очень понравилось <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[nostro]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27296</uri>
			</author>
			<updated>2011-10-19T07:23:41Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52660#p52660</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: Поиск файлов по маске на сервере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52654#p52654" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>dab00 пишет:</cite><blockquote><p>Я&nbsp; и не сомневаюсь в том, что через WMI медленно, но пост был про скрипт.</p></blockquote></div><p>Поясните, пожалуйста, Вашу мысль.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-10-19T06:12:19Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52654#p52654</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: Поиск файлов по маске на сервере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52653#p52653" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>как-то тут один коллега делал некое исследование на эту тему: что работает быстрее. В лидерах оказались dir и Log Parser.</p></blockquote></div><p>Я&nbsp; и не сомневаюсь в том, что через WMI медленно, но пост был про <strong>скрипт</strong>.<br />Предлагаю сворачивать дискуссию. Как отправить полученный список по почте, полагаю, уважаемый nostro найдет на форуме.</p>]]></content>
			<author>
				<name><![CDATA[dab00]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27085</uri>
			</author>
			<updated>2011-10-19T05:49:26Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52653#p52653</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: Поиск файлов по маске на сервере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52651#p52651" />
			<content type="html"><![CDATA[<p>Я Вам про Фому:<br /></p><div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>без LIKE не даёт <strong>поиск во вложенных папках</strong></p></blockquote></div><p>Вы мне про Ерёму:<br /></p><div class="quotebox"><cite>dab00 пишет:</cite><blockquote><p>…&quot;без LIKE&quot; - …убираем Path …<strong>обо всех файлах … на диске</strong>.</p></blockquote></div><p>Кэшируются не запросы:<br /></p><div class="quotebox"><cite>dab00 пишет:</cite><blockquote><p>Тем не менее запросы кэшируются, поэтому во второй и последующие разы выполняются значительно быстрее.</p></blockquote></div><p>Работает обычный дисковый кэш. Соответствующее ускорение получим при использовании любых повторных запросах, лишь бы памяти хватало.</p><p><strong>dab00</strong>, дело в том, что как-то тут один коллега делал некое исследование на эту тему: что работает быстрее. В лидерах оказались dir и Log Parser.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-10-19T03:27:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52651#p52651</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: Поиск файлов по маске на сервере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52635#p52635" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>ибо WMI без LIKE не даёт поиск во вложенных папках, а с LIKE — можно заработать рак лёгких, пока завершится опрос.</p></blockquote></div><p>Не соглашусь на счет &quot;без LIKE&quot; - в приведенном скрипте убираем Path и получаем информацию обо всех файлах mp3 на диске.<br />А LIKE, само собой, сильно замедляет скорость выполнения любого запроса.<br />Тем не менее запросы кэшируются, поэтому во второй и последующие разы выполняются значительно быстрее.</p>]]></content>
			<author>
				<name><![CDATA[dab00]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27085</uri>
			</author>
			<updated>2011-10-18T16:27:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52635#p52635</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: Поиск файлов по маске на сервере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52634#p52634" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>nostro пишет:</cite><blockquote><p>А есть где-нибудь документация по использованию логпарсера в VBS?</p></blockquote></div><p>В той же справке «LogParser.chm», разделе «COM API».</p><p><strong>dab00</strong>, курить можно, действительно, смело, ибо WMI без LIKE не даёт поиск во вложенных папках, а с LIKE — можно заработать рак лёгких, пока завершится опрос.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-10-18T15:37:22Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52634#p52634</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: Поиск файлов по маске на сервере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52633#p52633" />
			<content type="html"><![CDATA[<p>Через WMI можно следующим образом:<br /></p><div class="codebox"><pre><code>
Option Explicit
Const strComputer = &quot;.&quot; &#039;имя Вашего сервера
Const strDrive = &quot;D:&quot; &#039;целевой диск
Const strExtension = &quot;mp3&quot; &#039;целевое расширение
Const strPath = &quot;Share&quot; &#039;целевой каталог
Const strLogFileName = &quot;MP3Log.txt&quot; &#039;имя файла лога

Dim objWMI, wshShell, fso, objFiles, objFile, objLogFile, i
Set objWMI = GetObject(&quot;winmgmts:\\&quot; &amp; strComputer &amp; &quot;\root\cimv2&quot;)
Set objFile = CreateObject(&quot;WScript.Shell&quot;)
Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Set wshShell = CreateObject(&quot;WScript.Shell&quot;)

&#039;выполняем запрос к WMI
Set objFiles = objWMI.ExecQuery(&quot;SELECT * FROM CIM_DataFile WHERE Drive = &#039;&quot; &amp; strDrive &amp; _
		&quot;&#039; AND Path = &#039;\\&quot; &amp; Replace(strPath,&quot;\&quot;,&quot;\\&quot;) &amp; &quot;\\&#039; AND Extension = &#039;&quot; &amp; strExtension &amp; &quot;&#039;&quot;)

&#039;если хотите получить информацию обо всех файлах на диске - раскомментируйте этот запрос 
&#039;и закомментируйте или удалите предыдущий
&#039;Set objFiles = objWMI.ExecQuery(&quot;SELECT * FROM CIM_DataFile WHERE Drive = &#039;&quot; &amp; strDrive &amp; _
&#039;		&quot;&#039; AND Extension = &#039;&quot; &amp; strExtension &amp; &quot;&#039;&quot;)

&#039;создаем файл
Set objLogFile = fso.CreateTextFile(wshShell.CurrentDirectory &amp; &quot;\&quot; &amp; strLogFileName, True)

i = 0 &#039;счетчик

If objFiles.Count &gt; 0 Then &#039;если файлы найдены	
	For Each objFile In objFiles
		&#039;пишем имя файла в лог
		objLogFile.WriteLine(objFile.Name)
		i = i + 1
	Next
End If

&#039;закрываем файл лога
objLogFile.Close

&#039;удаляем ссылки
Set objLogFile = Nothing
Set objFiles = Nothing
Set fso = Nothing
Set wshShell = Nothing
Set objWMI = Nothing

&#039;выводим сообщение
If i = 0 Then 
	MsgBox &quot;Файлы с расширением &quot; &amp; strExtension &amp; &quot; не найдены&quot;	
Else
	MsgBox &quot;Найдено &quot; &amp; i &amp; &quot; файла(ов) c расширением &quot; &amp; strExtension
End If</code></pre></div><p>Можно, конечно, не выбирать ни диск, ни каталог, но тогда скрипт будет медленнее работать.<br />И, разумеется, для запуска нужно обладать правами админа на сервере.<br />p.s. А если добавить к имени файла лога, например, текущую дату или дату+время и закинуть скрипт в планировщик, то в дальнейшем можно смело курить... ну что Вы там курите <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[dab00]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27085</uri>
			</author>
			<updated>2011-10-18T15:26:12Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52633#p52633</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: Поиск файлов по маске на сервере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52631#p52631" />
			<content type="html"><![CDATA[<p>А есть где-нибудь документация по использованию логпарсера в VBS?</p>]]></content>
			<author>
				<name><![CDATA[nostro]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27296</uri>
			</author>
			<updated>2011-10-18T13:54:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52631#p52631</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: Поиск файлов по маске на сервере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52629#p52629" />
			<content type="html"><![CDATA[<p><strong>nostro</strong>, документацию не пробовали читать?<br /></p><div class="codebox"><pre><code>LogParser.exe &quot;SELECT TOP 50 Path, Size FROM c:\*.bmp, c:\*.jpg ORDER BY Size DESC&quot; -i:FS</code></pre></div>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-10-18T13:18:52Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52629#p52629</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: Поиск файлов по маске на сервере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52628#p52628" />
			<content type="html"><![CDATA[<p>А с помощью логпарсера можно указать список расширений, по которым исакть нужно? А то я пока нашел кучу примеров, где ищут файлы с одинаковым расширением, но не по списку расширений...</p>]]></content>
			<author>
				<name><![CDATA[nostro]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27296</uri>
			</author>
			<updated>2011-10-18T12:58:37Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52628#p52628</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: Поиск файлов по маске на сервере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52625#p52625" />
			<content type="html"><![CDATA[<p>Я бы предложил два варианта, куда более удобных:</p><p>* использовать Far Manager (неограниченные возможности фильтрации при поиске; найденным можно сразу же и манипулировать);<br />* использовать Log Parser:<br /><a href="http://forum.script-coding.com/viewtopic.php?id=926">CMD/BAT: отчёт по свойствам файлов по маске с помощью Log Parser</a><br /><a href="http://forum.script-coding.com/viewtopic.php?id=934">VBScript: утилита LogParser от Microsoft, COM-интерфейс</a><br /><a href="http://forum.script-coding.com/viewtopic.php?id=947">VBScript: работаем с утилитой LogParser от Microsoft</a>.</p><p>Думаю, сие будет проще и удобнее.</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2011-10-18T12:18:05Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52625#p52625</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH: Поиск файлов по маске на сервере]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=52624#p52624" />
			<content type="html"><![CDATA[<p>Имеет. Как говориться, можно и руками чистить, но руководство требует скрипт...</p><p>UPD: накопал в интернете такой вот скриптик:</p><div class="codebox"><pre><code>Dim fso,mySet,myDir,st
Dim s()
i=0

Dim regEx, Match, Matches, regtxt
Set regEx = New RegExp
regEx.IgnoreCase = True
regEx.Global = True

mySet=&quot;*.fb2 *.bin *.cue&quot; &#039; Список расширений, которые ищутся

For Each m1 in Split(mySet,&quot; &quot;,-1,1)
    regtxt = regtxt &amp; &quot;\.&quot; &amp; m1 &amp; &quot;$|&quot;
Next
regEx.Pattern = Left(regtxt, Len(regtxt)-1)

myDir=&quot;c:\123&quot; &#039; Путь для поиска

Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)

Sub ListFolder(curDir)
On Error Resume Next
    For Each f1 in fso.GetFolder(curDir).Files
    If Err.Number = 0 Then
            If regEx.Test(f1) Then
                ReDim Preserve s(i+1)
                s(i) = f1.path
                i=i+1
            End If
    End If
    Next
Err.Clear
    For Each s1 in fso.GetFolder(curDir).SubFolders
        If Err.Number = 0 Then
            ListFolder(s1.path)
        End If
    Next
Err.Clear
On Error Goto 0
End Sub

ListFolder(myDir)

For k=0 To i-1
    If Len(&quot;Количество файлов: &quot; &amp; i &amp; vbCrLf &amp; st &amp; k+1 &amp; &quot;) &quot; &amp; s(k) &amp; vbCrLf)&lt;1000 Then
        st=st &amp; k+1 &amp; &quot;) &quot; &amp; s(k) &amp; vbCrLf
    Else
        MsgBox &quot;Количество файлов: &quot; &amp; i &amp; vbCrLf &amp; st
        st=k+1 &amp; &quot;) &quot; &amp; s(k) &amp; vbCrLf
    End If
Next
 
MsgBox &quot;Количество файлов: &quot; &amp; i &amp; vbCrLf &amp; st</code></pre></div><p>Как сделать так, чтобы результат не на экран выводился, а в файл, который бы слался на определенное мыло?</p>]]></content>
			<author>
				<name><![CDATA[nostro]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=27296</uri>
			</author>
			<updated>2011-10-18T11:48:44Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=52624#p52624</id>
		</entry>
</feed>
