Пакетная / VBS для чтения текстового файла - PullRequest
0 голосов
/ 17 марта 2011

Я хочу написать пакетный скрипт / vbs, который должен построчно читать текстовый файл и искать ключевое слово. если ключевое слово найдено, оно должно быть перенаправлено в выходной файл.

Пример журнала:

Вт 01.09.2000 06:53
-------- C: \ Data --------
C: \ Data \ 2009
C: \ Data \ 2010
C: \ Data \ 2011
C: \ Data \ Filename.txt
C: \ Data \ * Fileusage 1011 * C: \ Data \ Guidline.xml
C: \ Data \ 2009 \ 12
C: \ Data \ 2009 \ 12 \ 01 \ 667e33999.txt
C: \ Data \ 2009 \ 12 \ 01 \ 667e45454999.xml
C: \ Data \ 2009 \ 12 \ 09 \ 667dfder999.pdf
C: \ Data \ 2009 \ 12 \ 09 \ 667e332324.pdf
C: \ Data \ 2009 \ 12 \ 09 \ 867fdfe2323.pdf
C: \ Resource \ Результаты \ 233.txt
C: \ Resource \ Результаты \ 234.txt
C: \ Resource \ Результаты \ 235.txt
C: \ Resource \ Результаты \ 236.txt
C: \ Resource \ Результаты \ 237.txt
C: \ Resource \ Результаты \ 238.txt
C: \ Resource \ Результаты \ Длилась \ 433.txt
C: \ Resource \ Результаты \ Длилась \ 239.txt
C: \ Resource \ Результаты \ Длилась \ 890.txt
C: \ Resource \ Результаты \ Длилась \ 121.txt
C: \ Resource \ Результаты \ Длилась \ 009.txt
C: \ Resource \ Результаты \ Длилась \ 999.txt
Всего файлов в списке:
12 файл (ов) 7,234,336 байт
0 Dir (s) 3 413 392 345 байт бесплатно

В основном я хочу захватить любую строку, которая начинается с C: \ Data \ Year \ Month и C: \ Resource \ Findings \ Lasted

Вывод, как показано ниже

C: \ Data \ 2009 \ 12 \ 01 \ 667e33999.txt
C: \ Data \ 2009 \ 12 \ 01 \ 667e45454999.xml
C: \ Data \ 2009 \ 12 \ 09 \ 667dfder999.pdf
C: \ Data \ 2009 \ 12 \ 09 \ 667e332324.pdf
C: \ Data \ 2009 \ 12 \ 09 \ 867fdfe2323.pdf
C: \ Resource \ Результаты \ Длилась \ 433.txt
C: \ Resource \ Результаты \ Длилась \ 239.txt
C: \ Resource \ Результаты \ Длилась \ 890.txt
C: \ Resource \ Результаты \ Длилась \ 121.txt
C: \ Resource \ Результаты \ Длилась \ 009.txt
C: \ Resource \ Findings \ Lasted \ 999.txt

Кто-нибудь может мне помочь?

1 Ответ

2 голосов
/ 17 марта 2011

Вы можете использовать findstr:

findstr /b /r "C:\\Resource\\Findings\\Lasted\\ C:\\Data\\[0-9][0-9][0-9][0-9]\\[0-9][0-9]\\." data.dump

findstr для фильтрации строк из файла, что мы и делаем здесь. Сначала мы включаем сопоставление регулярного выражения с /r. Не обманывайтесь, это очень и очень минимальные регулярные выражения, которые время от времени нарушаются, поэтому может быть сложно понять их правильно. /b для соответствия начала строки. Затем есть разделенный пробелами список того, что нужно искать, в данном случае либо C:\Resource\Findings\Lasted\, либо C:\Data\Year\Month, где год имеет четыре, а месяц две цифры.

...