中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 23:20
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 关于 把文本按行横列变纵列 的问题
可打印版本  1,244 / 10
第1楼 ZJHJ 发表于 2009-12-18 22:22
高级用户 发帖 374 积分 609
关于 把文本按行横列变纵列 的问题
我现在想编辑个批处理,关于任意十六进制码解密(无地址码、无长度)现在将需要处理的文件作为附件传上。
例如:
40 65 63 68 6F 20 6F 66 66 26 65 6E 64 6C 6F 63 61 6C 26 73 65 74 6C 6F 63 61 6C 20 65 6E 61 62 6C 65 64 65 6C 61 79 65 64 65 78 70 61 6E 73 69 6F 6E 0D 0A 3A 3A 20 43 6F 64 65 20 62 79 2D 71 38 32 34 39 30 31 34 20 43 4D 44 40 58 50 20 45 78 65 32 42 61 74 2E 63 6D 64 0D 0A 73 65 74 20 2F 61 20 22 63 6F 75 6E 74 3D 30 2C 73 74 72 3D 32 34 30 2C 76 61 72 3D 25 72 61 6E 64 6F 6D 25 25 25 31 30 22 0D 0A 73 65 74 20 22 68 78 3D 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 22 0D 0A 32 3E 6E 75 6C 20 64 65 6C 20 2F 61 20 2F 71 20 2F 66 20 63 6D 70 5F 2E 70 73 0D 0A 73 65 74 20 2F 70 20 66 69 6C 65 3D C7 EB CA E4 C8 EB CE C4 BC FE B5 C4 BE F8 B6 D4 C2 B7 BE B6 20 5B BD A8 D2 E9 D6 B1 BD D3 BD AB CE C4 BC FE CD CF B7 C5 B5 BD B4 CB B4 B0 BF DA D6 D0 A3 AC D7 EE B4 F3 20 36 35 32 38 30 20 D7 D6 BD DA 5D 3A 26 63 6C 73 0D 0A 73 65 74 20 22 66 69 6C 65 3D 21 66 69 6C 65 3A 22 3D 21 22 0D 0A 66 6F 72 20 25 25 69 20 69 6E 20 28 22 21 66 69 6C 65 21 22 29 20 64 6F 20 28 69 66 20 6E 6F 74 20 65 78 69 73 74 20 22 25 25 7E 24 50 41 54 48 3A 69 2E 5C 2A 22 20 28 0D 0A 20 20 20 20 20 20 20 73 65 74 20 22 65 78 70 6E 61 6D 65 3D 25 25 7E 78 69 22 26 73 65 74 20 2F 61 20 22 73 69 7A 65 3D 25 25 7E 7A 69 2D 31 22 29 29 0D 0A 69 66 20 6E 6F 74 20 64 65 66 69 6E 65 64 20 73 69 7A 65 20 65 63 68 6F 2E CA E4 C8 EB B4 ED CE F3 A3 BF 26 26 25 30 0D 0A 69 66 20 25 73 69 7A 65 25 20 4E 45 51 20 2D 31 20 28 69 66 20 36 35 32 37 39 20 4C 53 53 20 25 73 69 7A 65 25 20 65 63 68 6F 2E CE C4 BC FE CC AB B4 F3 C1 CB A3 A1 26 25 30 29 20 65 6C 73 65 20 28 65 63 68 6F 2E 30 20 D7 D6 BD DA A3 BF 26 25 30 29 0D 0A 3E 6E 75 6C 20 66 73 75 74 69 6C 20 66 69 6C 65 20 63 72 65 61 74 65 6E 65 77 20 22 25 7E 64 70 30 63 6D 70 5F 2E 70 73 22 20 25 73 69 7A 65 25 0D 0A 3E 3E 22 25 7E 64 70 30 63 6D 70 5F 2E 70 73 22 20 3C 6E 75 6C 20 73 65 74 2F 70 22 3D 25 76 61 72 25 22 0D 0A 28 65 63 68 6F 2E 40 65 63 68 6F 20 6F 66 66 0D 0A 65 63 68 6F 2E 5E 3E 6E 75 6C 20 63 68 63 70 20 34 33 37 5E 26 5E 3E 6E 75 6C 20 67 72 61 66 74 61 62 6C 20 39 33 36 0D 0A 65 63 68 6F 2E 6D 6F 72 65 20 2B 36 20 25 25 30 5E 7C 64 65 62 75 67 0D 0A 65 63 68 6F 2E 32 5E 3E 6E 75 6C 20 64 65 6C 20 2F 61 20 2F 66 20 6E 65 77 5F 25 65 78 70 6E 61 6D 65 25 5E 26 72 65 6E 20 74 6D 70 5F 20 6E 65 77 5F 25 65 78 70 6E 61 6D 65 25 0D 0A
........
...........

本来程序已经编辑成功,已经可以处理7K左右小型文件.文件大到8K~几十K就不能处理了.关键问题是把文本按行横列变纵列不能处理大文件.
这是我用到的命令:
@echo off
setlocal enabledelayedexpansion
cd.>b.txt
for /f "tokens=*" %%i in (a.txt) do (
set str=%%i
set str=!str: =!
call :lp
)
pause
:lp
echo !str:~0,2!>>b.txt&set str=!str:~2!&if defined str goto :lp&goto :eof

希望朋友帮助解决处理 附件 内容可以变成纵列
即:
40
65
63
68
6F
20
6F
66
66
0D
0A
73
65
74
2F
70
20
66
69
6C
65
3D
.
.
.
.

附件
shm.rar (1.52 KiB)
第2楼 HAT 发表于 2009-12-19 00:07
版主 发帖 5,017 积分 9,023
是这个意思么?
第3楼 Hanyeguxing 发表于 2009-12-19 00:38
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
这样的问题,用sed或fr等,才是王道。。。
第4楼 ZJHJ 发表于 2009-12-19 13:47
高级用户 发帖 374 积分 609
我不会用 sed "s/ /\n/g" a.txt这个代码啊
帮我写个全的吧!先谢谢了!!

[ Last edited by ZJHJ on 2009-12-19 at 14:06 ]
第5楼 Hanyeguxing 发表于 2009-12-19 13:58
银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂
sed和fr是第三方命令行工具,你在论坛内搜索并下载,里面有帮助。
他们都可以直接实现替换“空格”为“回车符+换行符”。
第6楼 ZJHJ 发表于 2009-12-19 14:14
高级用户 发帖 374 积分 609
原来是第三方命令行工具,谢谢了
第7楼 ZJHJ 发表于 2009-12-19 14:40
高级用户 发帖 374 积分 609
刚才下载了,处理非常快。谢谢二位支持!
任意大小的十六进制码解密(无地址码、无长度)可算完美解决。

我的本意.....用十六进制码加密文件,不提供地址码、长度码, 只有十六进制码,如附件
文件,要解密就不是一件容易的事了.附件是批处理代码,有兴趣的朋友可解密贴出.

[ Last edited by ZJHJ on 2009-12-20 at 17:23 ]

附件
shm.rar (1.29 KiB)
第8楼 qinchun36 发表于 2009-12-22 09:48
高级用户 发帖 400 积分 609
第9楼 ficn 发表于 2009-12-27 06:52
初级用户 发帖 15 积分 30
还是用工具好

[ Last edited by ficn on 2009-12-27 at 06:56 ]
第10楼 bat-zw 发表于 2010-01-08 14:57
金牌会员 发帖 1,276 积分 3,105
我还是来纯批的,效率大家看吧:


[ Last edited by bat-zw on 2010-1-8 at 14:59 ]
第11楼 ZJHJ 发表于 2010-01-09 19:32
高级用户 发帖 374 积分 609
1 文件大了就不行了。
2 效率太慢
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023