找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 32476|回复: 7

[游戏娱乐] ANSI替代脚本实现彩色批处理不用改CONFIG.NT了

[复制链接]
发表于 2010-7-10 21:41:31 | 显示全部楼层 |阅读模式
不知道为啥不能在原创区发帖,就先发cn-dos了,顺便在这里发一次.


利用ANSI显示彩色字符兼容性最好,在DOS/Windews/Linux甚至boot.ini下都可以使用.
不过XP下使用ANSI需要修改CONFIG.NT,要是不慎没有改回去,可能引起起兼容问题.
而且就算改了CONFIG.NT,使用起来也不是很稳定,另外还要加command /c和echo组合使用,很麻烦的.
这里提供替代方法,利用PIF文件绕过CONFIG.NT文件执行脚本
因此好处如下:
1.不修改CONFIG.NT,安全
2.不需要command /c了,直接echo *[33m sybn就可以了
3.使用起来更稳定,暂未看到黑屏无显示状况
但是还有缺点未解决:
1.目标脚本必须使用严格的DOS的8.3命名规则
2.暂时未发现新问题

链接: https://pan.baidu.com/s/1Mv_xeyIne1AJWt1oeS0RhQ?pwd=zdt9
 楼主| 发表于 2010-7-12 19:46:39 | 显示全部楼层
这个脚本本身不实现任何功能,他只是给其他脚本的运行提供合适的运行环境

例如如下脚本作为目标脚本:
  1. @echo off chcp 437>nul&&graftabl 936>nul
  2. if not exist CONFIG.NT copy %WinDir%\System32\CONFIG.NT CONFIG.NT
  3. @cls
  4. echo DEVICE=%WinDir%\System32\ANSI.SYS /x >%WinDir%\System32\CONFIG.NT
  5. @echo.
  6. command /cecho 
  7. command /cecho                                   登鹳雀楼
  8. @echo.
  9. @echo.
  10. command /cecho                            白日依山尽,黄河入海流。
  11. @echo.
  12. command /cecho                            欲穷千里目,更上一层楼。
  13. @echo.
  14. @echo.
复制代码
它改写了CONFIG.NT文件,这可能影响到正常的16位程序运行.
并且在实际使用中,经常会无规律的不定期出现啥也不能显示的状况.
稳定性不能满意,这也限制了在大家实际编写脚本时,很少使用ANSI
==============================================
有了我的这个脚本,情况就不同了.
在我的脚本中定义上面的脚本为目标脚本.然后运行
运行后,就会为目标脚本准备好运行环境,然后自动运行目标脚本
这样的话,目标脚本中的很多东西都可以删除.
1.开头包含CONFIG.NT 的所有内容都可以删除,因为新的运行环境不再依赖CONFIG.NT文件
2.所有的"command /cecho"中的"command /c"都可以删除,新的运行环境不再需要他
当然,你也可以继续保留这些内容,但他们已经变得没有意义了
简化后的目标脚本:
  1. @echo off chcp 437>nul&&graftabl 936>nul
  2. @cls
  3. @echo.
  4. echo 
  5. echo                                   登鹳雀楼
  6. @echo.
  7. @echo.
  8. echo                            白日依山尽,黄河入海流。
  9. @echo.
  10. echo                            欲穷千里目,更上一层楼。
  11. @echo.
  12. @echo.
复制代码
 楼主| 发表于 2010-7-12 20:07:42 | 显示全部楼层
大体原理如下:
在临时目录生成sybncmdfig.nt文件,用以代替config.nt,启用ANSI.sys
在临时目录生成sybncmd.pif文件,强制指定sybncmd.bat使用sybncmdfig.nt运行
在临时目录生成sybncmd.bat文件,打开目标脚本
然后打开sybncmd.pif文件[pif文件是一种快捷方式类文件]
sybncmd.pif文件会使用sybncmdfig.nt为配置信息打开sybncmd.bat文件.
sybncmd.bat会打开目标文件
这样目标脚本就可以在ANSI.sys的驱动下被运行,并且不修改系统原有的config.nt
大家使用这个脚本时只需要修改sybncmd.bat的内容就可以了

[ 本帖最后由 sl543001 于 2010-7-12 20:14 编辑 ]
 楼主| 发表于 2010-7-12 21:18:47 | 显示全部楼层
有图有真相,代码:
  1. @echo off
  2. chcp 437
  3. graftabl 936
  4. cls
  5. :1
  6. pause>nul
  7. echo     ▁▁▁▁▁▁▁                              
  8. echo   ╱▏ANSI示例模板╲▁▁▁▁▁▁▁▁▁▁▁▁▁  
  9. echo ▉╱  ╔━━━━━━━━━━━━━━━━━━╗▏
  10. echo ▉简  ┃㊣ SYBN 2010-7-12                   ┃▏
  11. echo ▉介  ╠━━━━━━━━━━━━━━━━━━╣▏
  12. echo ▉╲  ┃这是SYBN在彩色批处理上的又一新的尝试┃▏
  13. echo ▉实▏┃由于SYBC等16位三方工具无法在win7运行┃▏
  14. echo ▉例▏┃于是在此尝试使用兼容性更好的ANSI驱动┃▏
  15. echo   ╲▏┃这个实力脚本的内容可以在boot.ini使用┃▏
  16. echo     ▏┃当然你要注意不要让单行代码超过80字节┃▏
  17. echo     ▏╚━━━━━━━━━━━━━━━━━━╝▏
  18. echo     ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇█
  19. goto :1
复制代码
 楼主| 发表于 2010-7-12 21:49:57 | 显示全部楼层

利用ANSI写了个实测有效的boot.ini文件

  1. [boot loader]

  2. timeout=3

  3. default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

  4. [operating systems]



  5. C:\wubildr.mbr = "┏━━━━━━━━━━━━━━━━━┓"

  6. C:\wubildr.mbr = "┃  [SYBN] 2010-7-12  QQ:354324773  ┃"

  7. C:\wubildr.mbr = "┠─────────────────┨"

  8. C:\wubildr.mbr = "┃这是SYBN在彩色批处理上的又一新尝试┃"

  9. C:\wubildr.mbr = "┃由于SYBC等16位三方在win7中运行异常┃"

  10. C:\wubildr.mbr = "┃于是现尝试使用兼容性更好的ANSI驱动┃"

  11. C:\wubildr.mbr = "┗━━━━━━━━━━━━━━━━━┛"

  12. multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /noexecute=optin /fastdetect

  13. C:\sbldr=小哨兵
复制代码
 楼主| 发表于 2010-7-16 21:50:11 | 显示全部楼层
此脚本在win7测试通过

某个使用16位SYBC.com的3方的斗地主脚本版本居然也意外测试通过了
 楼主| 发表于 2010-8-15 19:18:03 | 显示全部楼层
SYBC和ANSI都可以在win7中正常使用了
ANSI今天又有新收获,继续研究中,争取把魔塔做好
发表于 2010-9-22 00:16:40 | 显示全部楼层
楼主麻烦你“一口气吐完”,呵呵,帖子还是不错的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 01:29 , Processed in 0.019692 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表