标题: [文本处理] 求助批处理如何解析C语言生成的exe封装指令 [打印本页]
作者: laoxin 时间: 2015-12-15 17:07 标题: 求助批处理如何解析C语言生成的exe封装指令
想做个批处理进行文本处理比如有一个txt里面有以下内容:
START_0:
随机的内容(里面有需要替换的字符串)
随机的内容(里面有需要替换的字符串)
随机的内容(里面有需要替换的字符串)
END_0
。
。
。
START_n:
随机的内容(里面有需要替换的字符串)
随机的内容(里面有需要替换的字符串)
随机的内容(里面有需要替换的字符串)
END_n
我想要做的是找到START_X,将START_X到END_X里面查找我想要替换的字符串,替换后将START_X到END_X的内容复制到另一个文本里,
然后发现批处理的find 只能找到该字符串并把整行复制,现在想用C语言封装个find.exe,生成一个新的findstring指令,批处理调用findstring
指令,能够找到字符串所在的坐标,方便进行替换,想问问有没有大神知道呢!!
作者: flyinnet9 时间: 2015-12-15 17:50
- @echo off
- setlocal enabledelayedexpansion
- set /p n=输入数字:
- (for /f "delims=" %%a in (a.txt) do (
- if "%%a"=="END_!n!" set f=1
- if defined f exit /b
- if defined f1 echo.%%a
- if "%%a"=="START_!n!:" set f1=1
- ))>result.txt
复制代码
作者: CrLf 时间: 2015-12-15 18:24
这种需求...还不如用现成的第三方
作者: 回家路上 时间: 2015-12-15 18:52
看完了,竟然不知道你这第三方想自己想还是让别人写。
专门为一个特殊的需求整一个第三方?想要改就得重新编译生成,真不嫌麻烦。
如果你自己会的话当然不反对。否则,sed和gawk就足够了吧。
作者: laoxin 时间: 2015-12-16 00:04
回复 2# flyinnet9
非常感谢!大部分处理已经完成,只是还差某些数字替换,比如:
HEX:00 07 05 08 09
HEX:00 07 0f 10
HEX:00 07 05 08 09 00 09
HEX:00 07 05 08 09
上面的数字是随机的,长度也是随机的,数字与数字之间用TAB和空格隔开的,但是空格与TAB的个数 不定,我要做的处理是在每个数字前加上0x同时用,隔开,同时返回长度,如下:
lenth=5,0x00,0x07,0x05,0x08,0x09
lenth=4,0x00,0x07,0x0f,0x10
lenth=7,0x00,0x07,0x05,0x08,0x09,0x00,0x09
lenth=5,0x00,0xa7,0x05,0x08,0x09
我要用for/F用空格进行分割吗?但是输出的个数又不确定,请问还有什么更好的办法吗
作者: flyinnet9 时间: 2015-12-16 10:06
本帖最后由 flyinnet9 于 2015-12-16 10:08 编辑
返回长度表示无力- @echo off
- setlocal enabledelayedexpansion
- for /f "tokens=2 delims=:" %%a in (result.txt) do (
- for %%b in (%%a) do (
- set str=%%b
- set str=0x!str!
- set /p =!str!,<nul
- )
- echo.
- )
复制代码
作者: 回家路上 时间: 2015-12-16 10:29
- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=2 delims=:" %%l in (a.txt) do (
- for %%i in (%%l) do (
- set /a n+=1
- set line=!line!,0x%%i
- )
- echo;length=!n!!line!
- set n=&set line=
- )
- pause & exit /b
复制代码
作者: laoxin 时间: 2015-12-16 15:28
回复 6# flyinnet9
谢谢!!问题已解决
作者: laoxin 时间: 2015-12-16 15:30
回复 7# 回家路上
非常感谢!!语句太经典了!原来批处理还可以这样,学习了!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |