<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; CMD/BAT: Батник поиска]]></title>
	<link rel="self" href="http://forum.script-coding.com/extern.php?action=feed&amp;tid=10709&amp;type=atom" />
	<updated>2015-06-23T17:11:57Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.script-coding.com/viewtopic.php?id=10709</id>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Батник поиска]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=94709#p94709" />
			<content type="html"><![CDATA[<p><strong>texnar</strong><br />Ссылкой не поделитесь?</p>]]></content>
			<author>
				<name><![CDATA[Flasher]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27593</uri>
			</author>
			<updated>2015-06-23T17:11:57Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=94709#p94709</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Батник поиска]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=94682#p94682" />
			<content type="html"><![CDATA[<p>Я уже нашел решение спасибо!</p>]]></content>
			<author>
				<name><![CDATA[texnar]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33091</uri>
			</author>
			<updated>2015-06-21T16:08:28Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=94682#p94682</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Батник поиска]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=94655#p94655" />
			<content type="html"><![CDATA[<p>Как я понимаю использование именно пакетных файлов необязательно.</p><p>Доработал на Autohotkey в сторону полной автоматизации решение из темы <a href="http://forum.script-coding.com/viewtopic.php?id=9297">VBScript: Работа с проводником Windows (поиск файлов)</a>, можно переписать и на JScript/VBScript с использованием <a href="http://www.script-coding.com/AutiItX.html"><em>AutoItX3.Control</em></a>.</p><p>Решение приведено для русской Windows XP, для более поздних версий, вероятно будут другие номера и текст элементов управления...</p><p>Поиск по файлам Office 2010 работает (проверил только для Word).<br /></p><div class="codebox"><pre><code>#NoEnv
; Исходные данные
SearchPath = D:\Sandbox
SearchQuery = hello world

; Создаём скрытое окно Проводника и открываем в нём папку, в которой надо искать
ExplorerWindow := ComObjGet(&quot;new:{C08AFD90-F2A1-11D1-8455-00A0C91F3880}&quot;)
ExplorerWindow.Navigate(SearchPath)
while (ExplorerWindow.Busy)
    Sleep 1

; Подстройка вида поиска
RegWrite REG_DWORD, HKCU, Software\Microsoft\Search Assistant
    , UseAdvancedSearchAlways, 1

; Управляем окном Проводника, подражая действиям пользователя
DetectHiddenWindows On
WinTitle := &quot;ahk_id &quot; . ExplorerWindow.HWND
;    Открываем по F3 панель &quot;Поиск&quot;
ControlSend, , {F3}, %WinTitle%        
;    и ожидаем её загрузки
WinWait %WinTitle%, С&amp;лово или фраза в файле:
;    Заполняем поле запроса
ControlSetText Edit3, %SearchQuery%
Sleep 1000 ; Здесь нужна задержка - как сделать точнее?!
;    Нажимаем кнопку &quot;Найти&quot;
ControlClick На&amp;йти
;    По доступности кнопок &quot;Найти&quot; и &quot;Остановить&quot; ожидаем завершения поиска:
Loop {
    ControlGet Enabled, Enabled,, На&amp;йти
    if (!Enabled)
        break
    Sleep 1
}
Loop {
    ControlGet Enabled, Enabled,, Остановит&amp;ь
    if (!Enabled)
        break
    Sleep 100
}

; Обрабатываем результаты поиска
ShellFolderItems := ExplorerWindow.Document.Folder.Items
Count := ShellFolderItems.Count
MsgBox Найдено %Count% файлов/папок
Loop %Count% {
    ShellFolderItem := ShellFolderItems.Item(A_Index - 1)
    MsgBox % ShellFolderItem.Path
}

; Закрываем окно Проводника (если оно невидимо, то это не обязательно)
ExplorerWindow.Quit()
</code></pre></div>]]></content>
			<author>
				<name><![CDATA[wisgest]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=3850</uri>
			</author>
			<updated>2015-06-21T05:19:14Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=94655#p94655</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Батник поиска]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=94650#p94650" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Yury пишет:</cite><blockquote><p>Невозможно.</p></blockquote></div><p>Там ещё скрипт был указан, т.ч. <a href="http://forum.script-coding.com/viewtopic.php?pid=32182#p32182">возможно</a>. Правда, только с версией офиса ниже 2007...</p>]]></content>
			<author>
				<name><![CDATA[Flasher]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=27593</uri>
			</author>
			<updated>2015-06-20T19:12:08Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=94650#p94650</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: CMD/BAT: Батник поиска]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=94643#p94643" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Мои самостоятельные попытки создать батник</p><p>DIR C:\ /S /B | FINDSTR /I &quot;dipl курс&quot;&gt;&gt;result.txt</p></blockquote></div><br /><p>Абсолютно некорркетный подход, так как будут найдены и все файлы и папки, у которых соответствие с поисковыми шаблонами будет не только в имени, но и в пути, например, такой файл: </p><div class="quotebox"><blockquote><p>C:\dipl\абракадабра.txt</p></blockquote></div><p>.</p><br /><br /><br /><div class="quotebox"><blockquote><p>1. Проблемы с русской кодировкой</p></blockquote></div><br /><br /><p>Для различных версий утилиты &quot;findstr.exe&quot; эта проблема решается по-разному. Более-менее универсальным решением является использование списка шаблонов поиска в текстовом файле в обычной кодировке (&quot;Win-1251&quot;).</p><br /><br /><br /><div class="quotebox"><blockquote><p>2. Не ищет в содержимом файлов</p></blockquote></div><br /><p>И не будет искать, потому что для этого нужен другой механизм поиска: </p><div class="codebox"><pre><code>&gt;&quot;result.txt&quot; findstr/imls &quot;dipl курс&quot; &quot;C:\*.txt&quot;</code></pre></div><p>.<br />Кстати, этот код также может работать с багами, даже не связанными с поиском кириллических строк, и не находить файлы. Поэтому лучше использовать цикл с &quot;FOR&quot; для поиска в каждой папке, выведенной командой &quot;DIR&quot; с ключом &quot;/S&quot; для рекурсивного отображения.</p><br /><br /><br /><div class="quotebox"><blockquote><p>3. Ищет только в C:\</p></blockquote></div><br /><p>Поиск по всем возможным дискам: </p><div class="codebox"><pre><code>&gt;&quot;result.txt&quot; (for /l %%i in (65 1 90) do @cmd/c exit/b %%i&amp; 2&gt;nul cmd/v/c dir/a/b/s &quot;!=ExitCodeAscii!:\*dipl*&quot;)</code></pre></div><p>.<br />Также пример подобного кода можете увидеть в теме &quot;<a href="http://forum.script-coding.com/viewtopic.php?pid=89058#p89058">CMD/BAT: Как прописать все диски?</a>&quot;.</p><br /><br /><br /><div class="quotebox"><blockquote><p>в содержимом... офисных файлов</p></blockquote></div><br /><p>Невозможно.</p><br /><br /><br /><div class="quotebox"><blockquote><p>Слов для поиска много 100+ компьютер не должен уходить в ступор на полдня.</p></blockquote></div><br /><p>Вы не должны что-то искать в содержимом абсолютно всех файлов, а искать только в файлах с определёнными расширениями или, наоборот, исключать из поиска файлы с какими-то расширениями.</p><br /><br /><br /><div class="quotebox"><blockquote><p>Финансовая политика - бюджет и условия называете сами.</p></blockquote></div><br /><p>$300... Не-а... $310... Каждому! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[Yury]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=30230</uri>
			</author>
			<updated>2015-06-20T13:47:11Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=94643#p94643</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[CMD/BAT: Батник поиска]]></title>
			<link rel="alternate" href="http://forum.script-coding.com/viewtopic.php?pid=94641#p94641" />
			<content type="html"><![CDATA[<p>Описание:</p><p>Нужнен батник или скрит c регистро независимым поиском ключевых слов заданных через разделитель в тело батника, скрипта или из txt файла (второй вариант желательнее), который будет искать латинские и кирилические слова в именах папок, файлов и в содержимом текстовых - офисных файлов по всему компьютеру на физических дисках, смонтированых дисках (флешках) и в сетевом окружении (сетевых дисках). С выводом результатов поиска - путей к найденым файлам в текстовый файл в папку откуда он запущена. Если в содержимом одного и того же файла найдено несколько ключевых, или несколько раз повторяющееся ключевое слово - пути не должны дублироваться.</p><p>Примечания:</p><p>Слов для поиска много 100+ компьютер не должен уходить в ступор на полдня. Скрипт аналог Windows Search с настройками по умолчанию + галочка &quot;Всегда искать по именам файлов и содержимому&quot;.</p><p>Пример:</p><p>dipl OR курс должен найти все папки и файлы с именами и содержимым diplom и курсовая с сохранением результатов поиска в текстовый файл в виде путей\имен файлов и папок. Пример вывода:</p><p>C:\Rostik\Admin\Desktop&gt;Diplom<br />C:\Rostik\Admin\Desktop&gt;Задание\Курсовая.docx</p><p>Мои самостоятельные попытки создать батник </p><p>DIR C:\ /S /B | FINDSTR /I &quot;dipl курс&quot;&gt;&gt;result.txt</p><p>Недостатки:</p><p>1. Проблеммы с русской кодировкой<br />2. Не ищет в содержимом файлов<br />3. Ищет только в C:\</p><p>Кто готов исправить батник за буду только рад.</p><p>Финансовая политика - бюджет и условия называете сами.</p><p>Всем спабо вопрос решен!</p>]]></content>
			<author>
				<name><![CDATA[texnar]]></name>
				<uri>http://forum.script-coding.com/profile.php?id=33091</uri>
			</author>
			<updated>2015-06-20T10:25:16Z</updated>
			<id>http://forum.script-coding.com/viewtopic.php?pid=94641#p94641</id>
		</entry>
</feed>
