0

我的目标是创建一个批处理文件,在文件名“output.log”的最后一行数据中搜索特定字符串“--- Exit ---”,并在最后一句存在字符串时执行程序。

“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  -----

注意完整的文档中有几十个“--- Exit ---”。

如果“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 转储中仍然包含“Exit”,因此.. 创建无限循环

批处理是否有任何脚本/替代方法可以读取 output.log 的最后一句 & 一旦最后一句包含“--- Exit ---”,然后执行特定程序(例如 calc.exe)?

如果能解释每条生产线的工作原理,那就太好了,对于像我这样零批次经验的人来说,这将是非常棒的!

4

0 回答 0