Findstr экспортирует данные в текстовый файл

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

У меня есть куча строк findstr для каждого из файлов, в которых я ищу имя, и результаты должны иметь возможность обрабатывать поиск имени в нескольких разных файлах.

findstr /l /m /i /g:"imput.txt" "info\data\ListOfNames1.txt" >>"results.txt"

Список имен увеличивается на 1 в каждой строке.

У меня есть johnDoe в imput.txt и в ListOfNames1.txt, но results.txt всегда пусто.

Заранее спасибо!


person Caleb    schedule 20.05.2015    source источник
comment
ваш код выглядит хорошо. Не могли бы вы опубликовать короткие фрагменты input.txt и ListOfNamesx.txt, пожалуйста?   -  person Stephan    schedule 20.05.2015


Ответы (2)


Это работает в текущем каталоге:

findstr /L JohnDoe *.txt >> results.txt

Но я предполагаю, что вам нужен путь в файле results.txt, и вы хотите искать разные пути?

Затем вы можете передать это программе для использования следующим образом:

findstr /L JohnDoe *.txt | myprog.exe

Для рекурсивного поиска из текущей папки вы можете использовать:

findstr /S /C:"JohnDoe" *.txt >> results.txt

Чтобы указать файл имен, вы можете использовать что-то вроде этого:

findstr /S /G:"names.dat" *.txt >> results.txt

Ваш вывод может выглядеть примерно так:

f1.txt:JohnDoe is a person
f2.txt:a person is JohnDoe 
onedown\f3.txt:also has JohnDoe in
person Angus Comber    schedule 20.05.2015

Итак, проблема была в том, что ListOfNamesX.txt находился в куче папок, и я забыл упомянуть %CD% в пути к файлу. Я думаю, это то, что хороший ночной сон может сделать для вас.

person Caleb    schedule 21.05.2015
comment
Я так и думал, но это казалось настолько очевидным, что я не осмелился спросить... Пожалуйста, отметьте свой ответ как правильный, чтобы все знали, что проблема решена. - person Stephan; 21.05.2015
comment
Эммм... Как мне это сделать? - person Caleb; 21.05.2015
comment
вот так (вы не можете пометить свой ответ в течение первых 48 часов — на случай, если кто-то предложит лучший ответ) - person Stephan; 22.05.2015