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

ansicolor 解析并输出彩色文本

[复制链接]
发表于 2015-10-30 06:33:39 | 显示全部楼层 |阅读模式
其实是 context.exe 的副产品,索性也编译成 exe,需要 .net 库支持
没有什么独特的功能,只是将以往需要用 ANSI.SYS 才能支持的部分特性移植到 JScript8.0 上,仅支持其中的彩色显示功能。
请参考 ANSI.SYS  的例子百科

其实功能没有 ansicon 多,所以更建议用 ansicon

例子:
  1. dir | context --color txt | ansicolor
  2. ::彩色显示 dir 输出中包含 txt 的行及上下文

  3. dir | grep --color=always -P \S+\.txt$ | ansicolor
  4. ::彩色显示 dir 输出中的 txt 文件名
复制代码
源码:
  1. @cc_on

  2. import System

  3. try{
  4.         ansisys_ConsoleColor(System.Console.In.ReadToEnd())
  5. }
  6. catch(Err){
  7.         Environment.Exit(1)
  8. }

  9. function ansisys_ConsoleColor(strText){
  10.         strText.replace(
  11.                 /[^\x1b]+|(\x1b\[\x1b)|\x1b\[(\d\d(?:;\d\d)*)m|./g,
  12.                 function($0,$1,$2,$3){
  13.                         if($1)return Console.Write('\x1b[')
  14.                         if($2){
  15.                                 var $2_regexp = /(\d)(\d)/g
  16.                                 var exec
  17.                                 while(exec = $2_regexp.exec($2)){
  18.                                         if(exec[0]=='00'){
  19.                                                 Console.ResetColor()
  20.                                         } else if(exec[1]=='3'){
  21.                                                 Console.ForegroundColor = AnsiColor2ConsoleColor(exec[2])
  22.                                         } else if(exec[1]=='4'){
  23.                                                 Console.BackgroundColor = AnsiColor2ConsoleColor(exec[2])
  24.                                         }
  25.                                 }
  26.                         } else {
  27.                                 Console.Write($0)
  28.                         }
  29.                 }
  30.         )

  31.         function AnsiColor2ConsoleColor(strColor){
  32.                 var ConsoleColorList = {
  33.                         '0':'Black',
  34.                         '1':'Red',
  35.                         '2':'Green',
  36.                         '3':'Yellow',
  37.                         '4':'Blue',
  38.                         '5':'Magenta',
  39.                         '6':'Cyan',
  40.                         '7':'White'
  41.                 }
  42.                 return(ConsoleColorList[strColor])
  43.         }
  44. }
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-16 21:59 , Processed in 0.016339 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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