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

[文本处理] 请问如何做一个简单的命令行窗口,显示指定txt文件中指定的内容

调试设备的时候抓log, 如果等到抓完再看,比较麻烦

想要实时能显示出来,方便实时查看设备的CPU温度与占用

需要这个bat能实现读取指定txt文件,然后解析出最后一行的指定内容在 命令窗口显示,间隔10秒刷新一次

TXT中的内容如下, 每次更新需要抓取最后一行的  第二字段,就下下图中最后一行的79%这个位置, 和 最后一行最后一字段86的位置,   一个代表CPU占用率,一个代表温度

1104  79%  0%         1104  73%  0%         1104  73%  0%         1104  72%  0%         1104  69%  0%         1104 100%  0%            0   0%  0%            0   0%  0%           86
1104  79%  0%         1104  70%  1%         1104  82%  1%         1104  72%  1%         1104  77%  0%         1104  94%  0%            0   0%  0%            0   0%  0%           85
1104  82%  0%         1104  74%  0%         1104  73%  0%         1104  72%  0%         1104  69%  0%         1104 100%  0%            0   0%  0%            0   0%  0%           86
1104  83%  0%         1104  73%  0%         1104  75%  0%         1104  75%  1%         1104  75%  1%         1104 100%  0%            0   0%  0%            0   0%  0%           86
1104  77%  1%         1104  67%  0%         1104  68%  1%         1104  71%  1%         1104  71%  0%         1104 100%  0%            0   0%  0%            0   0%  0%           85
1104  79%  0%         1104  73%  1%         1104  75%  0%         1104  75%  0%         1104  67%  1%         1104 100%  0%            0   0%  0%            0   0%  0%           86
1104  70%  1%         1104  59%  0%         1104  71%  0%         1104  63%  0%         1104  83%  0%         1104 100%  0%            0   0%  0%            0   0%  0%           86
1104  79%  2%         1104  69%  1%         1104  62%  0%         1104  62%  1%         1104  83%  1%         1104 100%  0%            0   0%  0%            0   0%  0%           86

回复 2# idwma


    用了一些笨方法,算法是实现了我的要求,先复制,然后提取,在截取显示,
哈哈
  1. @echo off
  2. title=每5秒刷新一次CPU温度
  3. mode con cols=40 lines=50&color 0c
  4. :loop
  5. COPY temp.txt temp1.txt >nul
  6. for /f "delims=" %%i in (temp1.txt) do (
  7.     set lastLine=%%~i
  8. )
  9. echo %lastLine% >ok.txt
  10. for /f "tokens=2-26 delims= " %%a in (OK.txt) do (
  11. echo cpu: %%a %%x
  12. )
  13. del temp1.txt
  14. del ok.txt
  15. TIMEOUT /T 5 >nul
  16. goto loop
复制代码

TOP

本帖最后由 newswan 于 2021-6-26 16:53 编辑

回复 4# mexs


    用 linux 的 tail ,只读最后一行
  1. tail -n 1
复制代码
  1. for /f "tokens=2-26 delims= " %%a in ('tail -n 1 1.txt') do (
复制代码

TOP

回复 3# newswan


    谢谢, 向通过bat 实现

TOP

回复 2# idwma


    实测,好像会历遍所有行,因为窗口会一直在变化显示,最后停留在最后一行上, 如果内容较多,需要等待很长时间才会定位到 最后一行向要的内容

不过还是谢谢你

TOP

powershell
  1. $file = "1.txt"
  2. while ($true)
  3. {
  4.     cls
  5.     $a = ( get-content $file | Select-Object -last 1 ) -split " +"
  6.     write-host "CPU:" $a[1]  $a[-1]
  7.     Start-Sleep -Seconds 10
  8. }
复制代码

TOP

本帖最后由 idwma 于 2021-6-26 15:59 编辑

@echo off
:loop
for /f "tokens=2-26 delims= " %%a in (in.txt) do (
cls
echo cpu: %%a %%x
)
ping -n 2 127.0.0.1>nul
goto :loop

TOP

返回列表