Моя цель - создать пакетный файл, который ищет определенную строку "--- Exit ---" в последней строке данных в файле с именем "output.log" и запускает программу, когда в последнем предложении есть строка.
«output.log» - это файлы журнала, которые всегда обновляются с интервалом> 3 с, поскольку это дамп файла журнала (следовательно, последнее предложение всегда будет другим)
...
08-15-19 14:58:03 [10220] INFO root <> - Information: General - "Stopping all customize processes" ()
08-15-19 14:58:03 [10220] INFO root <> - Information: General - "All customize processes stopped" ()
08-15-19 14:58:03 [10220] INFO root <> - ----- Exit -----
NBЕсть десятки «--- Выход ---» в полном документе.
Если в последнем предложении «output.log» появляется «--- Exit ---», пакетный файл должен выполнить программу (например, calc.exe)
СОчень ограниченные знания в пакетном файле, мой первоначальный план:
1) cd into the correct directory
2) Copy file from source folder (output.log) into another folder
3) Using FindRepl.bat, replace "--- Exit ---" to "--- Ex1t ---" and store it into another name (output2.log) (I was not able to save the replaced text into the original "output.log", hence i do this)
3) delete "output.log"
4) rename "output2.log" to "output.log"
5) execute program (when --- Exit ---- exist; but not --- Ex1t ---)...
6) loop from the top
Проблема, с которой я столкнулся, заключается в том, что я не могу удалить «output.log» и переименовать «output.log». Также существует критический недостаток, поскольку исходный дамп output.log по-прежнему содержит «Выход» внутри, следовательно ... создает бесконечный цикл
Существует ли какой-либо сценарий / альтернатива, в которой пакет мог бы прочитать последнее предложениеиз файла output.log и после того, как последнее предложение содержит «--- Exit ---», затем выполнить определенную программу (например, calc.exe)?
Было бы замечательно, если бы было объяснение того, как работает каждая строка, это было бы здорово для госзакупок с нулевым опытом партии, как я!