http://bcn.bathome.net/s/tool/index.html?key=PrintANSI
自己写的小工具,源码就不放了
想要研究的可以联系我
2017.6.24使用Net2.0重新编译
增强了兼容性。
正常情况无需多余运行库,
自带的NET即可运行
.Net程序有个特点
开机第一次运行速度较慢(中间码编译为汇编)
第二次运行速度正常
但是调用仍然慢的可以
所以请尽量少调用,将参数拉长,使得一次调用程序可以打印较多的字符来提高效率(下面的Ascii表是反例,真的很慢...)
由于CMD限制,控制字符和可显示字符可以正常重定向(1-7eh和80h)
超过80h的就无法正常重定向
所以想要生成高位Hex大于80的字符也就是双字节字符(由最高二进制位为1的Byte型高位和下一个Byte共同组成,比如汉字),请将双字节字符的ANSIHEX直接以四位一组的形式传参
老刘制作——ANSI/Ascii字符屏幕打印工具
用法: PrintANSI <ANSI-Hex> ... 示例:
打印”Hollo,world!“
PrintANSI 48 6F 6C 6C 6F 2C 77 6F 72 6C 64 21
打印“你好,世界”
PrintANSI C4E3 BAC3 A3AC CAC0 BDE7
打印控制字符
PrintANSI 1 2 3 4
蜂鸣
PrintANSI 7
实例:
批处理版Ascii表—— | @Echo off&Title Ascii码表 | | For %%a in (PrintANSI.exe) Do ^ | | If "%%~$PATH:a" EQU "" ^ | | If Not Exist .\PrintANSI.exe ^ | | Echo 第三方丢失,请到批处理之家第三方区下载。&&pause&&goto :eof | | mode 30,100 | | %在此感谢netbenton斑竹的10进制转16进制函数% set "d-h=setlocal enabledelayedexpansion&set/a dx=#a#&set xs=0123456789abcdef&(for /l %%z in (1,1,4) do set /a x%%z=dx%%16,dx=dx/16)&(for /f "tokens=1-4" %%1 in ("!x1! !x2! !x3! !x4!") do set hx=!xs:~%%4,1!!xs:~%%3,1!&(if !hx!==00 set hx=)&(for %%z in ("!hx!!xs:~%%2,1!!xs:~%%1,1!") do endlocal&set #a#=%%~z))" | | Echo 字符 16进制 10进制 | | Echo [空格] 20 32 | | Set /a 初始=0x20,步长=1,终止=0x7e,循环计数变量=初始 | | :loop | | Set /a 循环计数变量+=步长 | | Set /a 十六进制=十进制=%循环计数变量% | | %d-h:#a#=十六进制% | | PrintANSI %十六进制% | | Echo %十六进制% %十进制% | | IF %循环计数变量% LSS %终止% GOTO LOOP | | Echo [退格] 7f 127 | | PauseCOPY |
|