[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 1# w31575801
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. (for /f "tokens=1,* delims= " %%i in (a.log) do (
  4. set var=%%i
  5. set var=!var::=!
  6. if !var! geq 00101133 if !var! leq 00201145 echo %%i %%j
  7. ))>b.log
  8. pause
复制代码

TOP

本帖最后由 qixiaobin0715 于 2020-11-23 16:34 编辑

提供信息不全。时间前面应当还有日期?格式?

TOP

a.log为源文件,b.log为新文件

TOP

本帖最后由 qixiaobin0715 于 2020-11-24 09:23 编辑

回复 6# w31575801
新文件名为源文件名前加字符#,这样通用一些。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for %%a in ("*.log") do (
  4.     (for /f "tokens=1,* delims= " %%i in ('type "%%a"') do (
  5.         set var=%%i
  6.         set var=!var::=!
  7.         if !var! geq 00101133 if !var! leq 100201145 echo %%i %%j
  8.     ))>"#%%a"
  9. )
  10. pause
复制代码

TOP

回复 8# w31575801

已修改,试试吧。

TOP

回复 10# w31575801
再试试

TOP

本帖最后由 qixiaobin0715 于 2020-11-24 09:37 编辑

回复 8# w31575801

经过测试,我这里没问题啊。请不要直接选中代码复制,点击代码下方的“复制代码”,再粘贴。将bat文件另存为编码为ANSI的文件。

TOP

回复 14# w31575801
EmEditor文本编辑器好像能实现,编写一个宏文件,可能效率较高,家里电脑上没有,明天到单位上看看,很久以前写过宏文件,忘个差不多了,先要熟悉一下,试试吧。

TOP

回复 14# w31575801

将7楼代码第4行中type "%%a"改为findstr /b "8: 9: 10: 11:" "%%a",初步筛选一下。
上面是举一个例子,表示筛选的是8~11点的数据,注意时间之间要有空格。这样效率应当高一点。

TOP

本帖最后由 qixiaobin0715 于 2020-11-25 13:17 编辑

如果会使用EmEditor文本编辑器的话,处理文本的宏文件如下:
  1. editor.ReplaceInFiles( "^00:00:00.001.*\\r\\n((?!09:34:04.989).*\\r\\n)+","",document.Path + "\\*.log", eeFindReplaceRegExp,eeEncodingSystemDefault,"","",eeExFindSeparateCRLF);
  2. editor.ReplaceInFiles( "^09:34:07.247.*\\r\\n(.*\\r\\n)+","",document.Path + "\\*.log", eeFindReplaceRegExp,eeEncodingSystemDefault,"","",eeExFindSeparateCRLF);
复制代码
使用方法:
1.将代码保存为编码为"UTF-16LE”的文件test.jsee。
2.在源文件所在文件夹中新建一个空的txt文件,用EmEditor打开空文件,加载宏文件test.jsee,运行宏文件,即能在源文件上直接修改。
3.第一组数字为首行时间;第二组为保留的开始时间;第三组为保留的终止时间的下一行记录时间。
4.注意备份源文件,加载宏文件后,符合条件的文件夹内的所有.log文件都会被修改。
5.若需要7点之后,9点之前的记录,第二组数字改为07,第三组数字改为09,数字格式应与源文件保持一致,小时数00,01,...10...的格式,不能写成0,1,...,前面的0不能省略。

TOP

本帖最后由 qixiaobin0715 于 2020-11-25 19:06 编辑

整点之间的记录要简单点,比如你所说的8~17点,test.jsee:
  1. editor.ReplaceInFiles( "^(0[0-7]|1[7-9]|2[0-3]):.*\\r\\n","",document.Path + "\\*.log", eeFindReplaceRegExp,eeEncodingSystemDefault,"","",eeExFindSeparateCRLF);
复制代码

TOP

返回列表