[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 请问如何用批处理还原16进制的文件?

这是要还原的“687474703A2F2F7777772E626174686F6D652E6E65742020C5FAB4A6C0EDD6AEBCD2”16进制代码     其实里面内容是“http://www.bathome.net  批处理之家”txt文件转换得来的,我想知道如何用批处理还原它

以前写过个 "Ascii2Hex.bat",用来相互转换, 对于小文件,用下面语句:
  1. (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就是高效呀.

TOP

看不明  能否写简单点     我想还原出来的文件  以c:\1.txt 保存

TOP

  1. @echo off&setlocal enabledelayedexpansion
  2. set r=687474703A2F2F7777772E626174686F6D652E6E65742020C5FAB4A6C0EDD6AEBCD2
  3. :a
  4. if not "!r:~%a%,2!"=="" (
  5.         set s=!s!!r:~%a%,2!#&set/a a+=2,b=a%%32
  6.         if !b!==0 set "s=!s! "
  7.         goto:a
  8. )
  9. set P=0123456789ABCDEF&set/a a/=2,b=15
  10. call:c %a%
  11. set r=%f%
  12. :b
  13. (for %%a in (%s%) do (
  14.         set a=%%a&set/a b+=1
  15.         call:c !b!
  16.         set f=0!f!0
  17.         echo e!f:~-4! !a:#= !
  18.         )
  19. for %%a in (rcx %r% n$tmp w q) do echo %%a)>$tmp_
  20. type $tmp_|debug&graftabl 936 >nul
  21. move $tmp "c:\1.txt"
  22. del $tmp_&exit
  23. :c
  24. set f=&set d=%1
  25. :d
  26. set/a r=d%%16,d/=16
  27. set f=!P:~%r%,1!%f%
  28. if not %d%==0 goto:d
复制代码

[ 本帖最后由 hanyeguxing 于 2011-1-23 00:09 编辑 ]
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表