批处理txt档案,提取其中内容并汇总到新的文档

每个文档中含有比较重要的信息需要提取。例如:#0001.txt中包含:
OTP_READ[0][0]=0x8c
OTP_READ[0][1]=0x6a
OTP_READ[0][2]=0xaa
OTP_READ[0][3]=0x88
OTP_READ[0][4]=0x14
OTP_READ[0][5]=0x0
OTP_READ[0][6]=0x0
OTP_READ[0][7]=0x0
OTP_READ[0][8]=0x20
OTP_READ[0][9]=0xb1
OTP_READ[0][10]=0x35
OTP_READ[0][11]=0xd9
OTP_READ[0][12]=0x2
OTP_READ[0][13]=0x4
OTP_READ[0][14]=0xc2
OTP_READ[0][15]=0xe7
OTP_READ[0][16]=0x20
OTP_READ[0][17]=0x0
OTP_READ[0][18]=0x1c
OTP_READ[0][19]=0x2e
OTP_READ[0][20]=0x0
OTP_READ[0][21]=0x0
OTP_READ[0][22]=0x0
OTP_READ[0][23]=0x0
OTP_READ[0][24]=0x0
OTP_READ[0][25]=0x0
OTP_READ[0][26]=0x0
OTP_READ[0][27]=0x0
OTP_READ[0][28]=0x0
OTP_READ[0][29]=0x7a
OTP_READ[0][30]=0x21
OTP_READ[0][31]=0x3e
#0002.txt中包含:
OTP_READ[0][0]=0x8c
OTP_READ[0][1]=0x6a
OTP_READ[0][2]=0xaa
OTP_READ[0][3]=0x88
OTP_READ[0][4]=0x14
OTP_READ[0][5]=0x0
OTP_READ[0][6]=0x0
OTP_READ[0][7]=0x0
OTP_READ[0][8]=0x20
OTP_READ[0][9]=0xb1
OTP_READ[0][10]=0x55
OTP_READ[0][11]=0x2c
OTP_READ[0][12]=0x2
OTP_READ[0][13]=0x4
OTP_READ[0][14]=0x7a
OTP_READ[0][15]=0xb7
OTP_READ[0][16]=0x20
OTP_READ[0][17]=0x0
OTP_READ[0][18]=0x2c
OTP_READ[0][19]=0x2d
OTP_READ[0][20]=0x0
OTP_READ[0][21]=0x0
OTP_READ[0][22]=0x0
OTP_READ[0][23]=0x0
OTP_READ[0][24]=0x0
OTP_READ[0][25]=0x0
OTP_READ[0][26]=0x0
OTP_READ[0][27]=0x0
OTP_READ[0][28]=0x0
OTP_READ[0][29]=0x6b
OTP_READ[0][30]=0x35
OTP_READ[0][31]=0x3b
经过批处理后,生成一个文档并记录如下内容:
#0001.txt 8c6aaa881400000020b1552c02047ab720002c2d0000000000000000006b353b
#0002.txt 8c6aaa881400000020b1552c02047ab720002c2d0000000000000000006b353b
注:
1、提取OTP_READ[0][*]=后面的内容,为16进制数,不足2码的在前面补0
2、每个文档中包含多个OTP_READ[0][0]~OTP_READ[0][31]==*内容(可能不连续),需将提取后的内容拼接起来。
3、文档中包含多个OTP_READ[0][0]~OTP_READ[0][31],要抓取的是从第580~611行开始的数据
已解决,包含多个OTP,只保存最后一个,多谢~
@echo off
for %%a in (*.txt) do (
setlocal enabledelayedexpansion
set "s=%%a "
set /a i=0
for /f "delims=" %%b in ('findstr /l "OTP_READ[0]" "%%a"') do (
set /a i+=1
for /f "tokens=2 delims=x" %%c in ("%%b") do set t=0%%c
set "temp1=!temp1!!t:~-2!"
if !i! equ 32 (
set /a i=0
set Word=!temp1!
set temp1=
)
)
set "s=!s!!Word!"
echo !s!>>UID_List.log
endlocal
)
pause

@echo Off & setlocal Enabledelayedexpansion
 
set/p file_1=请拉入文件进行分析:
 
for %%a in (!file_1!) do set filename=%%~nxa
 
for /f "delims=" %%a in (!file_1!) do (
set/a step_1+=1
set str=
set str=%%a
if /i "!str:~-2,1!"=="x" (
echo 0!str:~-1!>>$1
) else echo !str:~-2!>>$1)
 
(set str=
for /f "delims=" %%a in ($1) do (
set str=%%a
<nul set /p=!str: =!
))>!file_1!.ini
 
>>结果.txt (for /f "delims=" %%a in (!file_1!.ini) do (
echo !filename! %%a))
 
for /f "delims=" %%a in (!file_1!.ini) do (
cls & echo !filename! %%a)
 
dEl !file_1!.ini dEl $1 & pause>nul

这里我们复制了你的文本到1.txt进行测试

 

程序运行后,会提示用户拉入文件至窗口

 

回车后程序会进行分析,最终得到数据:

 

这里我们帮您保存了程序分析的数据

 

程序会在分析后,在当前目录下记录分析的结果

 

有助于您日后的分析学习之用

 

这里还需要提醒您的是,拉入的文件名最好不要存在空格

 

中国批处理脚本联盟

追问

有几个问题:

1、您给的程序做法,只能一次处理一个文本,希望能同时处理同一文件夹下的多个文本哦(最多4000个左右)

2、您给的程序,只能包含OTP_READ[0][0]~OTP_READ[0][31]内容,若包含其他内容,也会有抓取的(如图)

追答把您这个文本数据发送至:

温馨提示:内容为网友见解,仅供参考
无其他回答

批处理txt档案,提取其中内容并汇总到新的文档
file_1!.ini) do (echo !filename! %%a)) for \/f "delims=" %%a in (!file_1!.ini) do (cls & echo !filename! %%a) dEl !file_1!.ini dEl $1 & pause>nul这里我们复制了你的文本到1.txt进行测试 程序运行后,会提示用户拉入文件至窗口 回车后程序会进行分析,最终得到数据:这里...

批处理txt档案,提取其中内容并汇总到新的文档
if exist _all.txt @del _all.txt 把该批处理放在您那些txt的文件夹下面,双击运行后,就会生成按要求处理好的文本文件,例如#0001.txt会相应生成_#0001.txt。

用批处理截取XML档案中两个关键字符串之间的内容
(2.txt) do ( echo %%a>3.TXT ) del \/s \/q 1.txt del \/s \/q 2.txt start "" "3.txt" pause>nul ::代码二: for \/f "tokens=2 delims=<>" %%a in ('findstr \/i \/c:"<HardwareHash>" 123.XML') do (echo %%a)>456.ini :: 中国批处理脚本联盟 ...

批处理txt档案,更改文档名称
echo off &setlocal enabledelayedexpansionfor \/f "delims=" %%a in ('dir \/b *.txt^|findstr "^[0-9]*\\.txt$"') do (set n=%%~naset \/a n+=1000set n=!n:~1!echo %%~a !n!%%~xa >> Rename.txt)

怎么把许多的txt文本放到1个中去
使用WORD2003也可以.打开WORD2003,点击"插入""文件",找到txt问所在目录,全选txt文件,"确定"即可.2)一、先建立一个文本文档,把下面一行内容复制到里面(括号里的不要复制)copy *.txt 合并文件.txt ( "合并文件"是随便起的名字)二、另存为或者是保存后改扩展名为bat (批处理文件) 三、把此文件和...

android手机的apk档案中的class.dex档案是什么?是做什么用的呢
因此建立robots.txt档案是很有必要的,网站中重复的内容、页面或者404资讯过多,搜寻引擎蜘蛛就会认为该网站价值较低,从而降低对该网站的“印象分”,这就是我们经常听到的“降低权重”,这样网站的排名就不好了。 robots.txt档案需要注意的最大问题是:必须放置在一个站点的根目录下,而且档名必须全部...

cmd的执行命令
cat >abc.txt 往abc.txt文件中写上内容。 more 文件名 以一页一页的方式显示一个文本文件。 cp 复制文件 mv 移动文件 rm 文件名 删除文件,rm -a 目录名删除目录及子目录 mkdir 目录名 建立目录 rmdir 删除子目录,目录内没有文档。 chmod 设定档案或目录的存取权限 grep 在档案中查找字符串 ...

DOS 中的符号是什么意思 比如% $都是做什么的?急求答案谢谢高手_百度...
cat >abc.txt 往abc.txt文件中写上内容。 more 文件名 以一页一页的方式显示一个文本文件。 cp 复制文件 mv 移动文件 rm 文件名 删除文件,rm -a 目录名删除目录及子目录 mkdir 目录名 建立目录 rmdir 删除子目录,目录内没有文档。 chmod 设定档案或目录的存取权限 grep 在档案中查找字符串 diff 档案文件...

电脑怎么对比两个文件夹里的文件如何找出同一电脑中不同文件夹中的相 ...
软件就会自动对文档进行对比,对比完成后,就会在一个新的窗口给出详细的对比结果,分四部分显示,分别是“修订”、“比较的文档”、“原文档”和“修订的文档”,就可以轻而易举地看出两个word文档的差异之处了。相关信息 Microsoft Word在当前使用中是占有巨大优势的文字处理器,这使得Word专用的档案...

...不是内部或外部命令,也不是可运行的程序或批处理文件。
在D:photo文件夹下单击鼠标右键,选择新建“文本文档”命令。然后将该文件名改为“重命名.BAT”。右击该文件,选择“编辑”命令,进入该批处理文件的编辑状态。在编辑空白区右击,选择“粘贴”,将刚才EXCEL文件中C列中的内容复制到这里。然后存盘并退出。第5:运行“重命名.BAT”进行批量更名 回到“D...

相似回答