标题: 超高效彩显工具SYBC-增强版[2015-7-29更新] [打印本页]
作者: bailong360 时间: 2015-4-19 17:50 标题: 超高效彩显工具SYBC-增强版[2015-7-29更新]
用sybc exe版开发的时候发现了一些缺点
本来想下载源码进行修改,但是找不到源码...
遂仿制了一个
http://pan.baidu.com/s/1dD5yAvn- 版本:0.3
- 大小:3.5KB
-
- SYBA 语法继承自SYBC
-
- sybc教程:
- http://www.bathome.net/thread-7375-1-4.html
- http://www.bathome.net/thread-10337-1-1.html
-
- 语法:
- SYBA 变量名
-
- 变量名对应的变量默认用于彩显,语法如下:
-
- 控制符号:
- $[attr] 颜色设置,[attr]参考color /?
- # 使用控制台当前颜色
- ; 下一行
- ;: 坐标设置(第一个可以省略),格式为023056,023表示行,056表示列
- ` 转义符
-
- 例:
- @echo off
- set var=025056$F0bathome$C0.net;:027060bailong360
- syba var
- pause
- 在25行56列以白色背景,黑色文字输出"bathome",再以红色背景输出".net"
- 在27行60列输出"bailong360"
-
-
- 特殊变量(ms代表延时数):
- M [ms] 获取鼠标坐标,M中可以保存鼠标坐标,返回坐标在M中的位置
- P [ms] 获取鼠标坐标,返回坐标
- K [ms] 获取键盘事件,K中保存需要检测的字符,返回该字符在M中的位置
- C [ms] 判断指定按键是否被按下
- D [ms] 获取键盘事件,返回虚拟键码
-
- M:
- 获取鼠标事件,M中可以保存鼠标坐标
- 如果保存了鼠标坐标,那么当鼠标单击在坐标规定的区域内时,程序退出并返回该区域的顺序
- 如果未保存鼠标坐标,那么单击后返回坐标
-
- 坐标格式:
- 左上角y轴,左上角x轴-右下角y轴,右下角x轴;左上角y轴2,左上角x轴2-右下角y轴2,右下角x轴2;(等等)
-
- 例:
- @echo off
- set M=1,1-3,3;1,10-2,15;
- syba M
- echo %errorlevel%
- pause
- 当鼠标单击在 1,1 3,3 围成的矩形区域内时,返回1
- 当鼠标单击在 1,10 2,15 围成的矩形区域内时,返回2
- 其他情况下不返回
-
- 如果M未定义则通过
- set /a "X = %errorlevel% >> 16,Y = %errorlevel% & 65535"
- 从返回值中获取坐标
- 例:
- @echo off
- :loop
- syba M
- set /a "X = %errorlevel% >> 16,Y = %errorlevel% & 65535"
- echo 行:%Y% 列:%X%
- goto loop
-
- P:
- 经典的用法,不多说
-
- K:
- 获取键盘事件,类chioce,k中保存字符,返回字符在字符串中的次序
- 例:
- @echo off
- echo 请选择(1 2 3 4 5 6)
- set k=123456
- syba k
- echo 你选择的是%errorlevel%
-
- C:
- 判断指定按键是否被按下,C中保存虚拟键码,可以通过百度或者syba M获得
- 例:
- @echo off
- setlocal enabledelayedexpansion
- set C=112;113;114;
- set List=123
- :loop
- syba C
- cls
- set /a ret=%errorlevel% - 1
- if not %ret% equ -1 echo 按键F!List:~%ret%,1!被按下
- goto loop
-
- D:
- 获取键盘事件,返回按下按键的虚拟键码
- 例:
- @echo off
- :loop
- syba D
- cls
- echo %errorlevel%
- goto loop
-
- [ms]
- 代表倒计时,ms毫秒过后程序强制退出
- M 强制退出返回当前鼠标坐标
- K C D 强制退出返回-1
- 例:
- @echo off
- :loop
- syba M 100
- set /a "X=%errorlevel% >> 16,Y = %errorlevel% & 65535"
- echo 行:%Y% 列:%X%
- goto loop
-
- 例:
- @echo off
- set syba=000000$03请选择(Y/N):
- set k=yYnN
- syba syba
- syba k
- echo;
- if %errorlevel% geq 2 (
- echo 你选择了N
- ) else echo 你选择了Y
- pause>nul
-
-
- 例(酷炫):
- @echo off
- setlocal enabledelayedexpansion
- set /a n=-5,k=1
- set color=000000
- for %%i in (1 2 3 4 5 6 7 8 9 A B C D E F) do (
- set /a n+=5
- set cols=00!n!
- if !k!==1 (
- set /a k+=1
- ) else set color=!color!;:000!cols:~-3!
- for %%j in (1 2 3 4 5 6 7 8 9 A B C D E F) do (
- set color=!color!;$%%i%%j `$%%i%%j
- )
- )
- set Mes=000000This is SYBA~
- syba color Mes
- set/p=
复制代码
用着那么多开源工具,写的东西不开源不好意思
PS C新手,代码比较臃肿...
链接: https://pan.baidu.com/s/1OXb5LyLDcCd-zYmIbLcKgA?pwd=tt2v
作者: laolong 时间: 2016-7-7 13:52
以前用过 2010年版本的,很好很强大
作者: hnfeng 时间: 2018-12-7 11:23
本帖最后由 hnfeng 于 2023-11-6 13:44 编辑
很强大好用,很棒的软件,做彩色批处理很方便
只是还有两点:
1、# 功能一直没试验成功。就是仅仅把光标定位到指定坐标(以指定或默认颜色),不用显示字符,为后面的 echo, pause, timeout ... 等输出的文字改变位置和颜色
2、把光标定位到指定坐标,把这个位置已经存在的字符(一个甚至多个字符)改变颜色
期待能升级
作者: hnfeng 时间: 2023-11-6 14:43
本帖最后由 hnfeng 于 2023-11-6 14:48 编辑
显示各颜色组合的效果:
- @echo off&setlocal EnableDelayedExpansion&cd /d "%~dp0"&color 07
- mode con lines=25 cols=80
-
- set t=Test_Test_测试文字测试文字测试文字▁▂▃▄▅▆▇████████......
-
- for %%b in (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) do (
- set V=000000
- for %%f in (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F) do (
- set V=!V!$%%b%%f_%%b%%f_%%b%%f_%%b%%f_%%b%%f_%%b%%f_%%b%%f_%t%;
- )
- syba V
- echo;
- if %%b equ F (
- echo 当前颜色值是(%%bx),是最后一个背景色。按任意键退出...
- ) else (
- echo 当前颜色值是(%%bx)。按任意键更换下一个背景色...
- )
- pause>nul
- cls
- )
复制代码
作者: hnfeng 时间: 2024-6-5 21:35
用sybc exe版开发的时候发现了一些缺点
本来想下载源码进行修改,但是找不到源码...
遂仿制了一个
用着那 ...
bailong360 发表于 2015-4-19 17:50
从win10开始,控制台已经支持更多颜色了,楼主能否更新一下 sybc,更多颜色、更多功能、更方便使用……,期待啊
https://c1ino.github.io/c1ino/20 ... in10-command-prompt
https://www.dostips.com/forum/viewtopic.php?f=3&t=9869
https://www.dostips.com/forum/viewtopic.php?f=3&t=8056
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |