|
ZJHJ
高级用户
积分 609
发帖 374
注册 2006-8-2
状态 离线
|
『楼 主』:
关于 把文本按行横列变纵列 的问题
我现在想编辑个批处理,关于任意十六进制码解密(无地址码、无长度)现在将需要处理的文件作为附件传上。
例如:
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
.
.
.
.
附件
1: shm.rar (2009-12-18 22:31, 1.52 K, 下载附件所需积分 1 点
,下载次数: 10)
|
|
2009-12-18 22:22 |
|
|
HAT
版主
积分 9023
发帖 5017
注册 2007-5-31
状态 离线
|
|
2009-12-19 00:07 |
|
|
Hanyeguxing
银牌会员
正在学习中的菜鸟...
积分 1039
发帖 897
注册 2009-3-1 来自 在地狱中仰望天堂
状态 离线
|
|
2009-12-19 00:38 |
|
|
ZJHJ
高级用户
积分 609
发帖 374
注册 2006-8-2
状态 离线
|
『第
4 楼』:
我不会用 sed "s/ /\n/g" a.txt这个代码啊
帮我写个全的吧!先谢谢了!!
[ Last edited by ZJHJ on 2009-12-19 at 14:06 ]
|
|
2009-12-19 13:47 |
|
|
Hanyeguxing
银牌会员
正在学习中的菜鸟...
积分 1039
发帖 897
注册 2009-3-1 来自 在地狱中仰望天堂
状态 离线
|
|
2009-12-19 13:58 |
|
|
ZJHJ
高级用户
积分 609
发帖 374
注册 2006-8-2
状态 离线
|
|
2009-12-19 14:14 |
|
|
ZJHJ
高级用户
积分 609
发帖 374
注册 2006-8-2
状态 离线
|
『第
7 楼』:
刚才下载了,处理非常快。谢谢二位支持!
任意大小的十六进制码解密(无地址码、无长度)可算完美解决。
我的本意.....用十六进制码加密文件,不提供地址码、长度码, 只有十六进制码,如附件
文件,要解密就不是一件容易的事了.附件是批处理代码,有兴趣的朋友可解密贴出.
[ Last edited by ZJHJ on 2009-12-20 at 17:23 ]
附件
1: shm.rar (2009-12-20 17:18, 1.29 K,下载次数: 3)
|
|
2009-12-19 14:40 |
|
|
qinchun36
高级用户
据说是李先生
积分 609
发帖 400
注册 2008-4-23
状态 离线
|
|
2009-12-22 09:48 |
|
|
ficn
初级用户
积分 30
发帖 15
注册 2008-6-23
状态 离线
|
『第
9 楼』:
还是用工具好
[ Last edited by ficn on 2009-12-27 at 06:56 ]
|
|
2009-12-27 06:52 |
|
|
bat-zw
金牌会员
永远的学习者
积分 3105
发帖 1276
注册 2008-3-8
状态 离线
|
『第
10 楼』:
我还是来纯批的,效率大家看吧:
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in (a.txt) do (
set /a n=0
for %%b in (%%a) do (
set /a n+=1
for %%c in (!n!) do set "_%%c=!_%%c! %%b"
)
)
(for /l %%a in (1,1,%n%) do echo !_%%a:~1!)>list.txt
start list.txt [ Last edited by bat-zw on 2010-1-8 at 14:59 ]
|
批处理之家新域名:www.bathome.net |
|
2010-1-8 14:57 |
|
|
ZJHJ
高级用户
积分 609
发帖 374
注册 2006-8-2
状态 离线
|
『第
11 楼』:
1 文件大了就不行了。
2 效率太慢
|
|
2010-1-9 19:32 |
|