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
- Pause
复制代码
|