利用FC命令的“执行二进制比较”参数/B来获取文件的ASCII码,并分别显示其ASCII的十六进制和十进制形式,理论上可以是获取任何文件的内容所对应的ASCII码。
说明:如果文件中含有中文或者ASCII码值比较大的字符,显示的ASCII码就会分开了,这是不可避免的。比如"啊"将显示为"B0 A1",因此其对应的十进制形式就会显示为"176 161"。
希望大家多测试一下,有bug或者错误的地方,请跟贴指出。感谢 electronixtar 提供建议。
::Code by lxmxn @ bbs.cn-dos.net
:::::::::: GetASCII.Bat ::::::::::::
::Date 22:50 2007-1-9
@echo off&mode con cols=80
:begin
cls
set/p file=请输入要处理的文件(Q 键直接退出此脚本):
if /i "%file%"=="Q" goto :eof
if "%file%"=="" goto error
set new=%random%
for %%a in (%file%) do set size=%%~za
if "%size%"=="0" goto error
cls&fsutil file createnew %new% %size% >nul
echo=&&echo=文件内容所对应的ASCII码的十六进制形式依次为:&echo==========================================================
for /f "skip=1 tokens=3" %%a in ('fc /B %new% %file%') do (
set /p=%%a <nul
)
echo=&echo==========================================================&echo=&echo=&echo=文件内容所对应的ASCII码的十进制形式依次为:&echo==========================================================
setlocal EnableDelayedExpansion
for /f "skip=1 tokens=3" %%a in ('fc /B %new% %file%') do (
set num=%%a
set /a num=0x!num!
set /p=!num! <nul
)
del %new%
endlocal&echo;&echo==========================================================&echo;&pause
exit /b 0
:error
cls&echo;&echo;
echo “输入错误” OR “文件大小为零”,请重新输入……
del %new% >nul 2>nul
set file=
set new=
pause>nul&goto :begin
[ Last edited by lxmxn on 2007-1-10 at 09:17 PM ]
本帖最近评分记录
(共 11 条)
点击查看详情
| 评分人 | 分数 | 时间 |
|---|---|---|
| ccwan | +5 | 2007-01-10 21:06 |
| 9527 | +5 | 2007-01-10 22:13 |
| 0401 | +2 | 2007-01-11 01:40 |
| redtek | +11 | 2007-01-11 02:18 |
| pengfei | +15 | 2007-01-11 10:11 |
| everest79 | +2 | 2007-01-11 12:19 |
| electronixtar | +20 | 2007-01-11 12:43 |
| qasa | +2 | 2007-01-11 17:15 |
| 26933062 | +15 | 2008-05-25 15:04 |
| pusofalse | +8 | 2008-06-03 20:50 |
| gool123456 | +2 | 2010-10-14 01:56 |
