[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] findstr能读取指定文件中包含指定字符串的最后一行内容吗?

有一个LOG文件需要读取和判断,需要的字符串一般出现在LOG文件的最后一行,开始的时候用这个代码:
  1. for /f "usebackq delims=" %%i in ("C:\Program Files (x86)\zpp\adb.log") do (echo %%i > lastline.txt)
复制代码
,发现在当程序运行的时候并不能读取,只能先复制出来才可以。会出现(系统找不到文件 C:\Program Files (x86)\zpp\adb.log。)而且效率不并高,把LOG文件逐行内容读取到 lastline.txt里,随着LOG的变大,时间会越来越长。后面发现findstr 可以直接查找指定的字符串,再用代码:
  1. for /F "tokens=4 delims=[]" %%a in ('findstr /c:"sr = error_shell_ok, ir = error_insufficient_storage" "C:\Program Files (x86)\zpp\adb.log"') do (echo %%a)
复制代码
,可以很准确的读出来指定的字符串,但是有个问题就是它会把LOG文件里所有符合条件的字符串都读出来,但是程序要求是读取最新的资料,一般这个字符串都在LOG文件的最后一行里,请教一下有没有什么好办法可以做到~。用findstr这条命令的话。附上LOG文件。

像上面的LOG文件,只取最后一行,也就是最新的内容里的6334赋值给一个变量,方便后续操作~

TOP

这样肯定是可以的,但是感觉效率不高,有没有能直接读取最后一行的操作~。。嘿嘿。。

TOP

LOG文件有时会很大,几十M都有可能的~

TOP

膜拜楼上的大神。。。。。。

TOP

返回列表