级别不够,只能发在这里了。
- @echo off
- :: wangwei qq 251485609
- (chcp 437 &graftabl 936)>nul
- 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 ;
- SET V=;RCX;006C;N mouse.com;W;Q
- (ECHO.%SYB:;=&ECHO.DW %&ECHO.%V:;=&ECHO.%)|DEBUG>NUL
- :fhzb
- cls
- @echo.
- @echo 十六进制码与十进制码互转
- @echo.
- @echo 十六进制转十进制码
- @echo.
- @echo 十进制转十六进制码
- for /f "tokens=1-3" %%1 in ('mouse.com') do (set /a X=0x%%2,Y=0x%%3) 2>nul
- if %X% GTR 3 if %X% LSS 20 if %Y% EQU 4 goto slzs
- if %X% GTR 3 if %X% LSS 20 if %Y% EQU 6 goto szsl
- goto :fhzb
- :slzs
- cls
- @echo.
- @echo 十六进制转十进制码
- @echo.
- set/p file=输入要处理的十六进制文件:
- ::按空格分开为行
- cd.>temp.txt
- for /f "delims=" %%i in (%file%) do (
- for %%a in (%%i) do echo %%a>>temp.txt
- )
- cd.>十进制.txt
- setlocal EnableDelayedExpansion
- for /f %%a in (temp.txt) do (
- set s=%%a
- set /a s=0x!s!
- set /p=!s! <nul >>十进制.txt
- )
- del temp.txt
- goto:eof
- :szsl
- @echo off
- cls
- @echo.
- @echo 十进制转十六进制码(仅适合于十六进制转换的十进制码)
- @echo.
- set/p file=输入要处理的十进制文件:
- ::按空格分开为行
- setlocal EnableDelayedExpansion
- cd.>temp.txt
- for /f "delims=" %%i in (%file%) do (
- for %%a in (%%i) do echo %%a>>temp.txt
- )
- cd.>十六进制.txt
- for /f %%a in (temp.txt) do (
- set qwe=%%a
- set qwe=!qwe!
- call :duon %qwe%
- set /p=!cdm! <nul >>十六进制.txt
- )
- del temp.txt
- goto:eof
- :duon
- set /a y= qwe%%16
- set /a ya=qwe/16%%16
- set m=0123456789ABCDEF
- set cdm=!m:~%ya%,1!!m:~%y%,1!
- 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 编辑 ] |