|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - Удаление строк из txt файлов |
|
|
CMD/BAT - Удаление строк из txt файлов
|
Новый участник Сообщения: 42 |
День добрый, помогите решить одну задачку..
в поиске что то не смог найти что нужно ( в общем есть папка Logs, внутри каждый день создается папка с нов датой, и каждый день пишутся файлы в формате txt с датой в названии, суть логов сводится к тому что 99% строк занимает [2000001] дата время files not found [2000095] дата время files not found и иногда проскакивает в лог что файл отправлен [2000156] дата время file 80009547.dat has been sent ну бывает конечно и таое что файл слишком большой допустим [2000042] дата время error file size ну что то примерно такое.. эти команды пишутся каждые 5 секунд, и за день собирается столько мусора что потом блокнот их открывает приличное время.. так собственно задачка, хочу сделать bat, чтобы искал за предыдущий день логи и удалял оттуда строки содержащие "files not found", а строки с ошибками и успешными отправками оставлял крайне желательно чтоб это было возможно запихать в планировщик задач и чтоб он это делал на постоянной основе |
|
Отправлено: 11:05, 30-09-2022 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать John87, На Вашем примере вроде бы отрабатывает. Я попробовал отсечь цифровую подпись - вывожу в файл только строки, содержащие : (двоеточие)
Set KeyWord=^|find /I ":"^|find /V /I "files not found"^|find /V /I "Обработано.записей"^|find /V /I "error file size" |
------- Отправлено: 20:04, 12-10-2022 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 42
|
Профиль | Отправить PM | Цитировать megaloman, в принципе меня устраивает, как работает вариант
cls >nul chcp 1251 Set "BoxIn=D:\test1" Set "Log=*.log" Set "ShortLogs=D:\test1\ShortLog" Set KeyWord=^|find /V /I "Обработано.записей.статусов"^|find /V /I "затрачено" If Not Exist "%ShortLogs%\*.*" Md "%ShortLogs%" FOR /F "usebackq skip=1 delims=" %%d IN (`2^>nul Dir "%BoxIn%" /A:D /O:-D /T:C /B`) DO ( Echo "%BoxIn%\%%d\%%d" If Not Exist "%ShortLogs%\%%d.txt" ( 2>nul >>"%ShortLogs%\%%d.txt" (Type "%BoxIn%\%%d\%Log%"%KeyWord%) ) ) :End pause Exit /B в этом синтаксисе можно эти строки оставить но отменить? решеткой или еще как? чтоб файл был готов, и требовал минимальных изменений, а то забуду ведь ( кстати если я добавляю их в нынешний вариант, он ничего не удаляет и делает только один самый старый лог ( |
Последний раз редактировалось John87, 13-10-2022 в 06:55. Отправлено: 06:45, 13-10-2022 | #22 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - чтение строк из файла и последующая вставка этих строк в copy con file.txt | sermister1 | Скриптовые языки администрирования Windows | 5 | 11-06-2020 15:46 | |
Любой язык - [решено] Добавить блоки строк из одного txt файла в другие txt файлы | Alexander_88 | Скриптовые языки администрирования Windows | 7 | 06-07-2019 00:15 | |
Любой язык - Удаление из txt файлов не нужных строк и дубликатов строк. | voler | Скриптовые языки администрирования Windows | 1 | 26-02-2018 14:10 | |
CMD/BAT - [решено] удаление части строк из всех текстовых файлов в папке | icq99999999 | Скриптовые языки администрирования Windows | 4 | 06-11-2013 07:19 | |
Удаление файлов из списка указанного в txt | blacks2 | Вебмастеру | 28 | 02-09-2009 20:09 |
|