批处理之家's Archiver

随风 发表于 2009-4-23 20:49

【出题-001】批处理提取qq群聊天记录中指定qq号码、日期、时间段

提取qq群聊天记录中指定qq号码、日期、时间段
聊天记录事先手动导出到a.txt 效果如下,需考虑昵称含特殊字符的情况
[quote]
2009-03-16 16:21:51 BAT-chezhh(61770)
呵fdgsdgsgsg

2009-03-16 17:21:25 bat-coen(5768535)
[图片]都给我转义成这了[/抓狂][/折磨]

2009-03-16 17:21:26 /9(bat)- df(765574)
不谢,都是初学者

2009-03-16 17:21:33 bat-(cope) nen(57535)
[/擦汗]不对

2009-03-16 17:21:34 bat-copegen(37535)
继续

2009-03-16 17:21:51 BAT-chezhh(61770)
呵呵。。

2009-03-16 17:22:00 BAT-chezhh(61770)
我也想的是用^

2009-03-16 17:22:01 BAT-chezhh(61770)
我也想的是用^
[/quote]
以qq号 61770 的为例,提取3月16日 17:00 以后的聊天记录,提取效果如下
[quote]
2009-03-16 17:21:51 BAT-chezhh(61770)
呵呵。。

2009-03-16 17:22:00 BAT-chezhh(61770)
我也想的是用^

2009-03-16 17:22:01 BAT-chezhh(61770)
我也想的是用^

[/quote]

[[i] 本帖最后由 随风 于 2009-4-23 20:56 编辑 [/i]]

everest79 发表于 2009-5-5 18:48

[code]@echo off
for /f "delims=" %%a in (s.txt) do (
echo %%a|findstr /b "2009\-[0-9][0-9-]\-[0-9][0-9]" >nul&&set out=0
echo %%a|findstr /e "BAT-chezhh(61770)" >nul&&set out=1
set /a 1/out 2>nul&&echo %%a
)
pause[/code]

lengmoke 发表于 2021-9-25 12:46

[code]
@echo off & rem 为了防止特殊符号(! ^ &等)的影响不能用变量延迟而且最后的变量只能是%%a等形式输出
for /f "tokens=1* delims=:" %%i in (' findstr /n "03-16.*17:.*:.*(61770)" a.txt ') do ( set /a number=%%i+1 & call :output )
exit
:output
for /f "tokens=1* delims=:" %%a in (' findstr /n ".*" a.txt ') do ( if %%a == %number% (echo %%j & echo %%b & echo. ) )
[/code]

lengmoke 发表于 2021-9-25 14:29

[code]
@echo off & rem 为了防止特殊符号(! ^ &等)的影响不能用变量延迟而且最后的变量只能是%%a等形式输出
set "sign="
for /f "tokens=1* delims=:" %%i in (' findstr /n ".*" a.txt ') do (
    echo.%%j|findstr "03-16.*17:.*:.*(61770)">nul && set sign=True
    if defined sign ( if "%%j"=="" ( echo. & set "sign=" ) else ( echo %%j ))
)
pause
[/code]

页: [1]

Powered by Discuz! Archiver 7.2  © 2001-2009 Comsenz Inc.