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

[文本处理] [分享]批处理实现十六进制码与十进制码互转

级别不够,只能发在这里了。

  1. @echo off
  2. :: wangwei qq 251485609
  3. (chcp 437 &graftabl 936)>nul
  4. SET SYB=A100;0AEB 3030 3020 2030 3030 2420 00B8 CD00;B833 0001 33CD 05B8 CD00 A933 0007 F674;E086 300D A330 0102 C889 08B3 18E8 A300;0105 D089 08B3 0EE8 A300 0108 09B4 02BA;CD01 B421 CD4C F621 08F3 74E4 FE02 FEC0;88C0 B1C4 D204 25E8 0F0F 300D 3C30 7639;0402 8007 39FC 0376 C480 C307  ;
  5. SET V=;RCX;006C;N mouse.com;W;Q
  6. (ECHO.%SYB:;=&ECHO.DW %&ECHO.%V:;=&ECHO.%)|DEBUG>NUL
  7. :fhzb
  8. cls
  9. @echo.
  10. @echo                 十六进制码与十进制码互转
  11. @echo.
  12. @echo   十六进制转十进制码
  13. @echo.
  14. @echo   十进制转十六进制码
  15. for /f "tokens=1-3" %%1 in ('mouse.com') do (set /a X=0x%%2,Y=0x%%3)  2>nul
  16. if %X% GTR 3 if %X% LSS 20  if %Y% EQU 4 goto slzs
  17. if %X% GTR 3 if %X% LSS 20  if %Y% EQU 6 goto szsl
  18. goto :fhzb
  19. :slzs
  20. cls
  21. @echo.
  22. @echo   十六进制转十进制码
  23. @echo.
  24. set/p file=输入要处理的十六进制文件:
  25. ::按空格分开为行
  26. cd.>temp.txt
  27. for /f  "delims=" %%i in (%file%) do (
  28.   for %%a in (%%i) do echo %%a>>temp.txt
  29. )
  30. cd.>十进制.txt
  31. setlocal EnableDelayedExpansion
  32. for /f  %%a in (temp.txt) do (
  33.         set s=%%a
  34.         set /a s=0x!s!
  35.         set /p=!s! <nul >>十进制.txt
  36. )
  37. del temp.txt
  38. goto:eof
  39. :szsl
  40. @echo off
  41. cls
  42. @echo.
  43. @echo   十进制转十六进制码(仅适合于十六进制转换的十进制码)
  44. @echo.
  45. set/p file=输入要处理的十进制文件:
  46. ::按空格分开为行
  47. setlocal EnableDelayedExpansion
  48. cd.>temp.txt
  49. for /f  "delims=" %%i in (%file%) do (
  50.   for %%a in (%%i) do echo %%a>>temp.txt
  51. )
  52. cd.>十六进制.txt
  53. for /f  %%a in (temp.txt) do (
  54. set  qwe=%%a
  55. set  qwe=!qwe!
  56. call :duon %qwe%
  57. set /p=!cdm! <nul >>十六进制.txt
  58. )
  59. del temp.txt
  60. goto:eof
  61. :duon
  62. set /a y= qwe%%16
  63. set /a ya=qwe/16%%16
  64. set  m=0123456789ABCDEF
  65. set  cdm=!m:~%ya%,1!!m:~%y%,1!
  66. goto:eof
复制代码


----------
如果你要任意十进制转十六进制,可以将长度计算修改即可。有效处理为2147483647
即:
:duon
set /a y= qwe%%16
set /a ya=qwe/16%%16
set /a yb=qwe/256%%16
set /a yc=qwe/4096%%16
set /a yd=qwe/65536%%16
set /a ye=qwe/1048576%%16
set /a yf=qwe/16777216%%16
set /a yg=qwe/268435456%%16
set  m=0123456789ABCDEF
set  cdm=!m:~%yg%,1!!m:~%yf%,1!!m:~%ye%,1!!m:~%yd%,1!!m:~%yc%,1!!m:~%yb%,1!!m:~%ya%,1!!m:~%y%,1!

[ 本帖最后由 ZJHJ 于 2010-8-10 22:33 编辑 ]

返回列表