![]() |
Выбрать из ТХТ строки с датами заданного периода
Добрый день.
Есть куча тхт файлов я с помощью bat файла выбираю только строки со словом Отключение rem Оставляем только строки со словом отключение setlocal enabledelayedexpansion for /f "delims=" %%i in ('dir "#*.txt" /a-d /b') do ( findstr /c:"Отключение" "%%i">log.tmp del "%%i" move log.tmp "%%i" ) Получились такие строки 20.01.2016 208980 Отключение 25.01.2016 148557 Отключение 20.02.2016 280087 Отключение 25.02.2016 289205 Отключение Мне теперь что нужно - задать временной период типа set nachalo=26.01.16 set konec=25.02.16 и оставить в каждом файле только те строки, которые соответствуют этому периоду Заранее спасибо за помощь. |
surgutfred, попробуйте воспользоваться для этого LogParser'ом (Средство Log Parser 2.2). Возможно также, что и предварительно отбирать строки не придётся.
|
Хотелось бы без лишнего софта, на бат файле. Будем думать.
|
surgutfred, дело в том, что в пакетных файлах нет такого понятия как переменная и её тип. Следовательно, язык пакетных файлов ничего не знает о таком типе данных, как дата, и не имеет никаких средств для работы с ними. Можно, конечно, поизвращаться от полной безвыходности, но зачем?
Я показал, каким образом это можно сделать быстро и просто — одним SQL-запросом. Хотите исключительно встроенными средствами — можно использовать WSH или PoSH. Главный вопрос в объёмах обработки. Если это сотни килобайт — одно дело, сотни мегабайт — совсем-совсем другое, и в последнем случае равных LogParser'у нет. P.S. Чем он Вам не нравится? Родное средство от Microsoft. |
Не, LogParser - это от Лукавого, лучше уж действительно одним SQL-запросом все решить. Но если кто-то не ищет легких путей и предположить, что полученные файлы выглядят примерно так:
#file1.txt Код:
20.01.2016 208980 Отключение Код:
20.01.2016 208980 Отключение Код:
@echo off |
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Iska, ужель запамятовали?
|
Iska, оведно
|
greg zakharov, Elven, конечно, запамятовал, ибо не знал и не сталкиваюсь ни в письме, ни в речи. Спасибо, ясно.
|
Время: 08:33. |
Время: 08:33.
© OSzone.net 2001-