View previous topic :: View next topic |
Author |
Message |
Yuk
Joined: 24 Nov 2009 Posts: 2
|
(Separately) Posted: Tue Nov 24, 2009 23:58 Post subject: Автоматизация поиска |
|
|
Есть текстовый файл строк примерно в 100 или более. Надо найти файлы в определенном каталоге (все файлы текстовые), в которых встречается хотя бы одна строка из первого файла (где и как угодно, без учета символа конца строки).
Можно это сделать в ТС?
Спасибо. |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2584 Location: Большая деревня Москва
|
(Separately) Posted: Wed Nov 25, 2009 01:25 Post subject: |
|
|
"В ТС" или "средствами ТС"? На первый вопрос - ответ "да", на второй - "нет" (насколько я знаю).
Давненько я не программировал батники, но сдается мне, что нечто подобное сделать можно. На досуге посмотрю. _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Wed Nov 25, 2009 01:55 Post subject: |
|
|
Yuk, примерно так:
findstr /m /g:список_строк.lst d:\путь\*.txt > найдено.lst
подробности: findstr /? |
|
Back to top |
|
|
Yuk
Joined: 24 Nov 2009 Posts: 2
|
(Separately) Posted: Wed Nov 25, 2009 21:16 Post subject: |
|
|
Tol!k
Спасибо. Работает.
Не получается засунуть в Старт Меню, чтобы использовался файл под курсором, а директория в другой панели.
Command: cmd /c
Parameteres: findstr /m /g:"%N" "%T" > found.txt
Файл создается, но пустой. А из командной строки все работает.
А можно ли сделать, чтобы найденные файлы выделялись? |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Wed Nov 25, 2009 21:58 Post subject: |
|
|
Code: | Parameteres: findstr /m /g:%N "%T*" > found.txt |
Quote: | А можно ли сделать, чтобы найденные файлы выделялись? |
В TC есть команды cm_LoadSelectionFromFile и cm_LoadSelectionFromClip (файлы выделяются в активной панели) |
|
Back to top |
|
|
swr
Joined: 07 Jun 2007 Posts: 59
|
(Separately) Posted: Thu Mar 25, 2010 14:25 Post subject: |
|
|
Всё прекрасно работает, если в указанном каталоге лежат непосредственно сами файлы, в которых производится поиск, но как быть если надо производить поиск во всех вложенных папках, начиная с указанного каталога? |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Thu Mar 25, 2010 14:40 Post subject: |
|
|
findstr/? wrote: | /D:список_папок — Поиск в списке папок (разделяются точкой с запятой) |
Добавлено
Видимо, невнимательно прочитал Quote: | поиск во всех вложенных папках, начиная с указанного каталога | Проще использовать параметр /S
Last edited by Tol!k on Fri Mar 26, 2010 13:56; edited 1 time in total |
|
Back to top |
|
|
swr
Joined: 07 Jun 2007 Posts: 59
|
(Separately) Posted: Thu Mar 25, 2010 19:13 Post subject: |
|
|
Сурово!
И ещё в добавок, что то не выходит у меня, помотрите пожалуйста, где накосячил:
1. Ничего не находит
findstr /m /g:"%N" "c:\TempDir\13\*";"c:\TempDir\14\*" > found.txt
2. Запускается cmd и ничего не происходит
findstr /m /g:"%N" /D:"c:\TempDir\13\*";"c:\TempDir\14\*" > found.txt
ещё несколько 5-ок вариаций перепробовал, напишите пожалуйста как правильно надо |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Fri Mar 26, 2010 14:15 Post subject: |
|
|
a) %N вредно заключать в кавычки
б) findstr /m /g:%N /d:"c:\TempDir\13";"c:\TempDir\14" *.* > found.txt
дальше наоборот: файл-список-слов под курсором, но в НЕактивной панели
в) findstr /s /m /g:%T%M *.* > found.txt — поиск в текущем каталоге и его подкаталогах
г) findstr /m /g:%T%M /f:%L > found.txt — файлы, в которых производится поиск, выделены в активной панели |
|
Back to top |
|
|
swr
Joined: 07 Jun 2007 Posts: 59
|
(Separately) Posted: Fri Mar 26, 2010 20:58 Post subject: |
|
|
Огромнейшее вам спасибо, так намного лучше! |
|
Back to top |
|
|
|