2015-05-20 3 views
1

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

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

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

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

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

Заранее благодарен!

+0

ваш код выглядит хорошо. Можете ли вы разместить короткие фрагменты 'input.txt' и' ListOfNamesx.txt', пожалуйста? – Stephan

ответ

0

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

+0

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

+0

Ummm ... Как мне это сделать? – Caleb

+0

[как это] (http://meta.stackexchange.com/a/5235) (вы не можете отметить свой собственный ответ в течение первых 48 часов - на случай, если кто-то доставит лучший) – Stephan

0

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

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