本帖最后由 plp626 于 2012-3-27 08:37 编辑
| @echo off | | | | :: 显示文件的ASCII码信息hex.cmd(16进制文件查看器) | | :: # Code by plp | V1.1 # | | :: %1 --- <文件名或者字符串> 当前路径下没有找到%1文件,则视%1为字符串; | | :: 字符串推荐带上双引号 | | :: %2 --- [每行显示个数] //缺省时为16 | | :: 依赖系统自带的外部命令: FC.exe | | :: 程序运行期间会生成临时文件:"$}.tmp"(结束后自动删除) | | | | setlocal enabledelayedexpansion | | if not exist "%~1" ( | | set/p=%1<nul>%tmp%\$f.tmp | | call %0 "%tmp%\$f.tmp" %2&goto:eof | | ) | | | | if %2.==. (Set line=16)else set/a line=%2||exit/b2 | | Set/a sz=%~z1,s=sz%%1000,z=(sz-s)/1000 | | Set @=`&for /l %%a in (1 1 10)do Set @=!@!!@! | | (Set @=!@:~-1000!&set/p=!@:~-%s%!<nul | | for /l %%a in (1 1 !z!)do set/p=!@!<nul)>$}.tmp | | | | set "fun=set/p=60 <nul&set/a n+=1&if ^!n^!==%line% echo.&Set n=0" | | Set/a tp=-1,n=p=0&for /f "skip=1 tokens=1-4 delims=: " %%a in ( | | '"fc/b %~s1 $}.tmp&del $}.tmp"' | | )do ( | | if %%a neq FC ( | | set/a m=0x%%a-tp-1 | | for /l %%z in (1 1 !m!)do %fun% | | Set tp=0x%%a&set/p=%%b <nul&set/a n+=1 | | if !n!==%line% echo.&Set n=0 | | )else set tp=-1&for /l %%a in (1 1 %~z1)do %fun% | | ) | | | | if !tp! geq 0 ( | | set/a m=%~z1-tp-1 | | for /l %%a in (1 1 !m!)do %fun% | | )COPY |
| @echo off | | | | :: 显示文件ascii信息,并显示所有字符;hhex.cmd | | :: hhex.cmd 是hex.cmd 的扩展版,增加特殊字符显示功能; | | :: %1 --- <文件名或者字符串> 当前路径下没有找到%1文件,则视%1为字符串; | | :: 字符串推荐带上双引号 | | :: hhex.cmd 调用 hex.cmd 获取文件或字符串的16进制数据信息; | | :: 调用 ascmap.cmd 获得ascii索引 | | :: 下载地址:http://www.bathome.net/thread-12347-1-1.html | | :: 版本 1.0; code by plp;2012-3-26 | | | | setlocal enabledelayedexpansion | | call ascmap.cmd /437 $ | | for /f "delims=" %%a in ('hex.cmd "%~1" 16')do ( | | set s=%%a | | set s=!s:~0,-1! | | set "ss=!s:~0,23!-!s:~24! " | | set s=!ss:~0,48! #$:~0x!s: =,1##$:~0x!,1# | | call:econ | | ) | | | | if "%~0"=="%~f0" set/p= | | goto:eof | | :econ | | (echo;|echo off)>con 2>nul&echo %s:#=!% | | echo COPY |
|