我的目标是创建一个批处理文件,在文件名“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)?
如果能解释每条生产线的工作原理,那就太好了,对于像我这样零批次经验的人来说,这将是非常棒的!