标题: [文件操作] 请问如何用批处理还原16进制的文件? [打印本页]
作者: zinet 时间: 2011-1-21 23:39 标题: 请问如何用批处理还原16进制的文件?
这是要还原的“687474703A2F2F7777772E626174686F6D652E6E65742020C5FAB4A6C0EDD6AEBCD2”16进制代码 其实里面内容是“http://www.bathome.net 批处理之家”txt文件转换得来的,我想知道如何用批处理还原它
作者: hanyeguxing 时间: 2011-1-22 01:43
- @echo off&setlocal enabledelayedexpansion
- set r=687474703A2F2F7777772E626174686F6D652E6E65742020C5FAB4A6C0EDD6AEBCD2
- :a
- if not "!r:~%a%,2!"=="" (
- set s=!s!!r:~%a%,2!#&set/a a+=2,b=a%%32
- if !b!==0 set "s=!s! "
- goto:a
- )
- set P=0123456789ABCDEF&set/a a/=2,b=15
- call:c %a%
- set r=%f%
- :b
- (for %%a in (%s%) do (
- set a=%%a&set/a b+=1
- call:c !b!
- set f=0!f!0
- echo e!f:~-4! !a:#= !
- )
- for %%a in (rcx %r% n$tmp w q) do echo %%a)>$tmp_
- type $tmp_|debug&graftabl 936 >nul
- move $tmp "c:\1.txt"
- del $tmp_&exit
- :c
- set f=&set d=%1
- :d
- set/a r=d%%16,d/=16
- set f=!P:~%r%,1!%f%
- if not %d%==0 goto:d
复制代码
[ 本帖最后由 hanyeguxing 于 2011-1-23 00:09 编辑 ]
作者: zinet 时间: 2011-1-22 14:39
看不明 能否写简单点 我想还原出来的文件 以c:\1.txt 保存
作者: hfg1977 时间: 2011-1-23 03:42
以前写过个 "Ascii2Hex.bat",用来相互转换, 对于小文件,用下面语句:- (echo e100&echo %hex_str%&echo n%~s2&echo rcx&echo %dec_size_HEX%&echo w&echo q)|debug>nul
复制代码
%hex_str%:你的16进制文件,要用空格分隔的.
%~s2: 输出文件名,8.3格式
%dec_size_HEX%: 你的16进制文件字节数,16进制表示
debug就是高效呀.
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |