![]() |
CMD BAT редактирование txt
Не могу написать батник чтобы редактировал файл так как мне надо. Есть файл например 1.log его содержимое:
1. вариант когда есть аварии LOADING PROGRAM VERSION 12.2-0 BTS ALARM LISTING KRA038 BCF-2308 ENVIR 2016-04-29 13:15:21.26 *** ALARM (29807) 7401 EXTERNAL AL 1 POWER KRA038 BCF-2301 ENVIR 2016-04-29 14:15:21.21 *** ALARM (29807) 7401 EXTERNAL AL 1 POWER END OF BTS ALARM LISTING COMMAND EXECUTED BASE TRANSCEIVER STATION ALARMS HANDLING COMMAND <EO_> 2. вариант когда нет аварий LOADING PROGRAM VERSION 12.2-0 BTS ALARM LISTING /* NO MATCHING ALARMS FOUND */ END OF BTS ALARM LISTING COMMAND EXECUTED BASE TRANSCEIVER STATION ALARMS HANDLING COMMAND <EO_> 3. вариант, лог файла может быть какой угодно недописанный, когда когда сессия завершилась неудачно или зависла. в 1-м варианте указаны 2 аварии а их может быть много нужно сделать батник, чтобы он создавал новый файл 2.txt форматы выхода: 1. вариант, когда аварии есть BCF-2308 2016-04-29 13:15:21.26 BCF-2301 2016-04-29 14:15:21.21 2. если 2 вариант то писало: NO MATCHING ALARMS FOUND 3. если ни то ни то, нужно чтобы в файл писал "LOADING..." максимум что я смог сделать это написать такую команду, она как бы выдет результат который мне нужно, но он сильно длинный findstr "BCF MATCHING" c:\1.log >2.txt |
Код:
@echo off |
ого, какой простой код, спасибо получилось!
единственная проблема, он в файл добавляет новые строчки, а нужно чтобы файл пересоздавался. |
Цитата:
Код:
@echo off |
спасибо
|
Подскажите еще один вопрос. Решил, что ошибок при подключении многовато, а значит в общем получается много файлов со значением LOADING..., подскажите как сделать, чтобы в случае, когда скрипт пишет в файл 2.log строчку LOADING... он не писал ее а просто не изменял этот файл и оставлял значения которые там были до запуска перезаписи и редактирования.
Или второй вариант, при неуспешном выполнении (то есть когда в файл должно писаться Loading...), делать перезапуск: я пробовал сделать так: :loop1 1.exe <"1.log">>"2.log" ( for /f "tokens=2-5" %%i in ('more') do @( if /i "%%j" equ "ENVIR" echo.%%i& echo %%k %%l& set bool=* if /i "%%i" equ "NO" echo.%%i %%j %%k %%l& set bool=* ) if not defined bool Goto loop1 ) не сработал фокус. |
Время: 08:16. |
Время: 08:16.
© OSzone.net 2001-