[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

超高效彩显工具SYBC-增强版[2015-7-29更新]

本帖最后由 bailong360 于 2015-8-4 19:53 编辑

用sybc exe版开发的时候发现了一些缺点
本来想下载源码进行修改,但是找不到源码...
遂仿制了一个
http://pan.baidu.com/s/1dD5yAvn
  1. 版本:0.3
  2. 大小:3.5KB
  3. SYBA 语法继承自SYBC
  4. sybc教程:
  5. http://www.bathome.net/thread-7375-1-4.html
  6. http://www.bathome.net/thread-10337-1-1.html  
  7. 语法:
  8.    SYBA 变量名
  9. 变量名对应的变量默认用于彩显,语法如下:
  10.    
  11.     控制符号:
  12.      $[attr] 颜色设置,[attr]参考color /?
  13.      #   使用控制台当前颜色
  14.      ;    下一行
  15.      ;:    坐标设置(第一个可以省略),格式为023056,023表示行,056表示列
  16.      `    转义符
  17.    
  18.     例:
  19.         @echo off
  20.         set var=025056$F0bathome$C0.net;:027060bailong360
  21.         syba var
  22.         pause
  23.         在25行56列以白色背景,黑色文字输出"bathome",再以红色背景输出".net"
  24.         在27行60列输出"bailong360"
  25.       
  26.         
  27. 特殊变量(ms代表延时数):
  28.  M [ms]  获取鼠标坐标,M中可以保存鼠标坐标,返回坐标在M中的位置
  29.    P [ms]  获取鼠标坐标,返回坐标
  30.  K [ms]  获取键盘事件,K中保存需要检测的字符,返回该字符在M中的位置
  31.    C [ms]      判断指定按键是否被按下
  32.  D [ms]  获取键盘事件,返回虚拟键码
  33. M:
  34.     获取鼠标事件,M中可以保存鼠标坐标
  35.     如果保存了鼠标坐标,那么当鼠标单击在坐标规定的区域内时,程序退出并返回该区域的顺序
  36.     如果未保存鼠标坐标,那么单击后返回坐标
  37.    
  38.     坐标格式:
  39.         左上角y轴,左上角x轴-右下角y轴,右下角x轴;左上角y轴2,左上角x轴2-右下角y轴2,右下角x轴2;(等等)
  40.       
  41.     例:
  42.         @echo off
  43.         set M=1,1-3,3;1,10-2,15;
  44.         syba M
  45.         echo %errorlevel%
  46.         pause
  47.         当鼠标单击在 1,1 3,3 围成的矩形区域内时,返回1
  48.         当鼠标单击在 1,10 2,15 围成的矩形区域内时,返回2
  49.         其他情况下不返回
  50.         
  51.     如果M未定义则通过
  52.     set /a "X = %errorlevel% >> 16,Y = %errorlevel% & 65535"
  53.     从返回值中获取坐标
  54.     例:
  55.         @echo off
  56.         :loop
  57.         syba M
  58.         set /a "X = %errorlevel% >> 16,Y = %errorlevel% & 65535"
  59.         echo 行:%Y% 列:%X%
  60.         goto loop
  61. P:
  62.    经典的用法,不多说
  63. K:
  64.     获取键盘事件,类chioce,k中保存字符,返回字符在字符串中的次序
  65.     例:
  66.         @echo off
  67.         echo 请选择(1 2 3 4 5 6)
  68.         set k=123456
  69.         syba k
  70.         echo 你选择的是%errorlevel%
  71.         
  72. C:
  73.     判断指定按键是否被按下,C中保存虚拟键码,可以通过百度或者syba M获得
  74.     例:
  75.         @echo off
  76.         setlocal enabledelayedexpansion
  77.         set C=112;113;114;
  78.         set List=123
  79.         :loop
  80.         syba C
  81.         cls
  82.         set /a ret=%errorlevel% - 1
  83.         if not %ret% equ -1 echo 按键F!List:~%ret%,1!被按下
  84.         goto loop
  85.         
  86. D:
  87.     获取键盘事件,返回按下按键的虚拟键码
  88.     例:
  89.         @echo off
  90.         :loop
  91.         syba D
  92.         cls
  93.         echo %errorlevel%
  94.         goto loop
  95. [ms]
  96.     代表倒计时,ms毫秒过后程序强制退出
  97.     M 强制退出返回当前鼠标坐标
  98.     K C D 强制退出返回-1
  99.     例:
  100.         @echo off
  101.         :loop
  102.         syba M 100
  103.         set /a "X=%errorlevel% >> 16,Y = %errorlevel% & 65535"
  104.         echo 行:%Y%  列:%X%
  105.         goto loop
  106.         
  107. 例:
  108.     @echo off
  109.     set syba=000000$03请选择(Y/N):
  110.     set k=yYnN
  111.     syba syba
  112.     syba k
  113.     echo;
  114.     if %errorlevel% geq 2 (
  115.      echo 你选择了N
  116.     ) else echo 你选择了Y
  117.     pause>nul
  118. 例(酷炫):
  119.     @echo off
  120.     setlocal enabledelayedexpansion
  121.     set /a n=-5,k=1
  122.     set color=000000
  123.     for %%i in (1 2 3 4 5 6 7 8 9 A B C D E F) do (
  124.      set /a n+=5
  125.      set cols=00!n!
  126.      if !k!==1 (
  127.       set /a k+=1
  128.      ) else set color=!color!;:000!cols:~-3!
  129.      for %%j in (1 2 3 4 5 6 7 8 9 A B C D E F) do (
  130.       set color=!color!;$%%i%%j `$%%i%%j 
  131.      )
  132.     )
  133.     set Mes=000000This is SYBA~
  134.     syba color Mes
  135.     set/p=
复制代码
用着那么多开源工具,写的东西不开源不好意思
PS C新手,代码比较臃肿...
附件: 您需要登录才可以下载或查看附件。没有帐号?注册
2

评分人数

以前用过 2010年版本的,很好很强大

TOP

本帖最后由 hnfeng 于 2023-11-6 13:44 编辑

很强大好用,很棒的软件,做彩色批处理很方便

只是还有两点:
1、# 功能一直没试验成功。就是仅仅把光标定位到指定坐标(以指定或默认颜色),不用显示字符,为后面的 echo, pause, timeout ... 等输出的文字改变位置和颜色
2、把光标定位到指定坐标,把这个位置已经存在的字符(一个甚至多个字符)改变颜色

期待能升级

TOP

本帖最后由 hnfeng 于 2023-11-6 14:48 编辑

显示各颜色组合的效果:
  1. @echo off&setlocal EnableDelayedExpansion&cd /d "%~dp0"&color 07
  2. mode con lines=25 cols=80
  3. set t=Test_Test_测试文字测试文字测试文字▁▂▃▄▅▆▇████████......
  4. for %%b in (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) do (
  5.   set V=000000
  6.   for %%f in (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) do (
  7.     set V=!V!$%%b%%f_%%b%%f_%%b%%f_%%b%%f_%%b%%f_%%b%%f_%%b%%f_%t%;
  8.   )
  9.   syba V
  10.   echo;
  11.   if %%b equ F (
  12.     echo 当前颜色值是(%%bx),是最后一个背景色。按任意键退出...
  13.   ) else (
  14.     echo 当前颜色值是(%%bx)。按任意键更换下一个背景色...
  15.   )
  16.   pause>nul
  17.   cls
  18. )
复制代码

TOP

返回列表