标题: [特效代码] 简单的 VT100 绘图引擎,支持 24 位色! [打印本页]
作者: HOPE2021 时间: 2022-9-10 13:30 标题: 简单的 VT100 绘图引擎,支持 24 位色!
本帖最后由 HOPE2021 于 2022-9-11 12:11 编辑
前两天无意中看到用批处理制作绘图引擎的提议。仔细想了一下,觉得在Windows 10中使用控制台虚拟终端序列制作还是挺简单的。于是我将常用的VT100转义写成了函数,下面是一些简单的实例:
VT 100 动画 - 本楼
中秋节快乐艺术字海报 - 2楼
进度条时钟 - 3 楼- @Mode Con: Cols=80 Lines=25 & Chcp 936 > Nul & @SetLocal Enableextensions & @Echo Off
- %= 利用 VT100 虚拟终端序列来制作绘图引擎的实例 =%
- @Goto :Main
-
- :Main
- @Call :Ani
- Pause > Nul
- @Exit /B 0
-
- :Ani
- Call :SetConsoleCursorInfo 1 1
- Call :SetConsoleTextAttribute 0-0-0 0-128-0
- Call :Type "Welcome to the "
- Call :SetConsoleTextAttributeEx 4
- Call :Type "future"
- Call :SetConsoleTextAttributeEx 5
- Call :Type "."
- TimeOut /T 2 > Nul 2> Nul
- Call :SetConsoleCursorInfo 2 0
- Cls
- For /L %%I in (0,1,2) Do (
- Call :GotoXY 1 13
- Set /P=Welcome to the future.< Nul
- For /L %%I in (1,1,58) Do (
- Help > Nul 2> Nul
- Call :GotoXY %%I 13
- Set /P=# Welcome to the future.< Nul
- )
- For /L %%I in (58,-1,1) Do (
- Help > Nul 2> Nul
- Call :GotoXY %%I 13
- Set /P=Welcome to the future. < Nul
- )
- )
- Cls
- For /L %%I in (0,16,255) Do (
- For /L %%J in (0,16,255) Do (
- For /L %%K in (0,16,255) Do (
- Call :SetConsoleTextAttribute %%I-%%J-%%K %%I-%%J-%%K
- Set /P=#< Nul
- )
- )
- )
- @Goto :Eof
-
- %================================================================%
- %= 日期: 2022 年 9 月 10 日 =%
- %= 名称: Type =%
- %= 作用: 模拟打字 =%
- %= 参数: String 要显示的字符串 =%
- %= 备注: 此函数要访问环境变量 _._ =%
- %================================================================%
- :Type <String>
- If "%~1"=="" @Goto :Eof
- Set "_._=%~1"
- Set /P=#%_._:~0,1%< Nul
- Set "_._=%_._:~1%"
- TimeOut /T 0 > Nul 2> Nul
- If Defined _._ @Call :Type "%_._%"
- @Goto :Eof
-
- %================================================================================================================================%
- %= VT100 函数 =%
- %================================================================================================================================%
-
- %================================================================%
- %= 日期: 2022 年 9 月 9 日 =%
- %= 名称: InitVT100 =%
- %= 作用: 初始化 Windows 10 的 虚拟终端序列 =%
- %================================================================%
- :InitVT100
- %= { =%
-
- %= 获取 ESC 字符 =%
-
- Set "ESC="
-
- %= 如果没有定义 ESC 字符,这个过程是为了防止论坛误吞上文的 ESC 字符 =%
- If Not Defined ESC (
-
- For /F "Delims=#" %%_ in ('Prompt #$E# ^& Echo On ^& For %%$ in ^(1^) Do DosKey') Do Set "ESC=%%_"
-
- )
-
- %= } =%
- @Goto :Eof
-
- %================================================================%
- %= 日期: 2022 年 9 月 9 日 =%
- %= 名称: GotoXY =%
- %= 作用: 定位光标到指定位置 =%
- %= 参数: X 光标的 X 轴坐标,如果省略或设为 0,则设其为1 =%
- %= 参数: Y 光标的 Y 轴坐标,如果省略或设为 0,则设其为1 =%
- %================================================================%
- :GotoXY <X> <Y>
- %= { =%
-
- %= 如果没有定义 ESC 字符 =%
- If Not Defined ESC (
-
- @Call :InitVT100
-
- )
-
- %= 定位光标 =%
- Set /P=%ESC%[%2;%1H< Nul
-
- %= } =%
- @Goto :Eof
-
- %================================================================%
- %= 日期: 2022 年 9 月 9 日 =%
- %= 名称: SetConsoleTextAttribute =%
- %= 作用: 设置控制台文本颜色 =%
- %= 参数: BGCOL 背景 RGB 颜色值,格式为R-G-B =%
- %= 参数: FGCOL 前景 RGB 颜色值,格式为R-G-B =%
- %================================================================%
- :SetConsoleTextAttribute <BGCOL> <FGCOL>
- %= { =%
-
- %= 如果没有定义 ESC 字符 =%
- If Not Defined ESC (
-
- @Call :InitVT100
-
- )
-
- %= 设置背景色 =%
- For /F "Delims=-, Tokens=1,2,3" %%I in ("%1") Do (
- Set /P=%ESC%[48;2;%%I;%%J;%%Km< Nul
- )
-
- %= 设置前景色 =%
- For /F "Delims=-, Tokens=1,2,3" %%I in ("%2") Do (
- Set /P=%ESC%[38;2;%%I;%%J;%%Km< Nul
- )
-
- %= } =%
- @Goto :Eof
-
- %================================================================%
- %= 日期: 2022 年 9 月 9 日 =%
- %= 名称: SetConsoleCursorInfo =%
- %= 作用: 设置控制台光标属性 =%
- %= 参数: CursorVisibility 光标可见和闪烁状态,取值1~4,分别为: =%
- %= 1 显示光标 =%
- %= 2 隐藏光标 =%
- %= 3 开始光标闪烁 =%
- %= 4 停止闪烁光标 =%
- %= 参数: CursorShape 自定义光标形状,取值0~6,分别为: =%
- %= 0 用户配置的默认光标形状 =%
- %= 1 闪烁块光标形状 =%
- %= 2 稳定块光标形状 =%
- %= 3 闪烁下划线光标形状 =%
- %= 4 稳定下划线光标形状 =%
- %= 5 闪烁条形光标形状 =%
- %= 6 稳定条形光标形状 =%
- %================================================================%
- :SetConsoleCursorInfo <CursorVisibility> <CursorShape>
- %= { =%
-
- %= 如果没有定义 ESC 字符 =%
- If Not Defined ESC (
-
- @Call :InitVT100
-
- )
-
- %= 设置光标可见和闪烁状态 =%
- For /F "Delims=-, Tokens=%1" %%I in ("25h-25l-12h-12l") Do (
- Set /P=%ESC%[?%%I< Nul
- )
-
- Set /P=%ESC%[%2 q< Nul
-
- %= } =%
- @Goto :Eof
-
- %================================================================%
- %= 日期: 2022 年 9 月 9 日 =%
- %= 名称: SetConsoleTextAttributeEx =%
- %= 作用: 格式化控制台文本 =%
- %= 参数: Code 操作代码,取值1~6,分别为: =%
- %= 1 默认,通常相当于Color 07 =%
- %= 2 粗体/亮 =%
- %= 3 无粗体/亮 =%
- %= 4 下划线 =%
- %= 5 无下划线 =%
- %= 6 交换前景色和背景色 =%
- %================================================================%
- :SetConsoleTextAttributeEx <Code>
- %= { =%
-
- %= 如果没有定义 ESC 字符 =%
- If Not Defined ESC (
-
- @Call :InitVT100
-
- )
-
- For /F "Delims=-, Tokens=%1" %%I in ("0-1-22-4-24-7") Do (
- Set /P=%ESC%[%%Im< Nul
- )
-
- %= } =%
- @Goto :Eof
复制代码
运行效果:
作者: HOPE2021 时间: 2022-9-10 20:00
本帖最后由 HOPE2021 于 2022-9-11 21:47 编辑
今天是中秋节,我以此作品祝大家中秋节快乐:- @Mode Con: Cols=160 Lines=20 & Chcp 437 > Nul & Title Happy Mid-Autumn Day! & @SetLocal EnableExtensions EnableDelayedExpansion & @Echo Off
- %= 利用 VT100 虚拟终端序列来制作绘图引擎的实例 =%
- %= 此程序必须保存为ANSI编码 =%
- If "%1"=="" (
- For %%a in ( FontSize:0006000C
- ) Do For /F "tokens=1,2 delims=:" %%b in ("%%a") do (
- > Nul Reg Add HKCU\Console\Happy_Mid_Autumn_Day /V %%b /T Reg_DWORD /D 0x%%c /F
- )
- Start "Happy_Mid_Autumn_Day" "%ComSpec%" /C "%~s0" 1 & @Goto :Eof
-
- ) Else (
- > Nul Reg Delete HKCU\Console\Happy_Mid_Autumn_Day /F
- )
- @Goto :Main
-
- :Main
- @Call :Ani
- Pause > Nul
- @Exit /B 0
-
- :Ani
- Set "Chr[1]=0x0100,0x0100,0x0104,0x7FFE,0x4104,0x4104,0x4104,0x4104,0x7FFC,0x4104,0x0100,0x0100,0x0100,0x0100,0x0100,0x0100"
- Set "Chr[2]=0x0840,0x1C40,0xF040,0x1040,0x1144,0xFD4C,0x1150,0x3240,0x3840,0x54A0,0x50A0,0x9110,0x1108,0x120E,0x1404,0x1800"
- Set "Chr[3]=0x1080,0x1080,0x1080,0x1088,0x5BFC,0x5488,0x5088,0x9088,0x1088,0x1FFE,0x1080,0x1140,0x1120,0x1210,0x140E,0x1804"
- Set "Chr[4]=0x0020,0x00F0,0x1F00,0x1000,0x1100,0x1100,0x2104,0x7FFE,0x0100,0x0100,0x0920,0x0910,0x1108,0x210C,0x4504,0x0200"
- @Call :SetConsoleCursorInfo 2 2
- @Call :SetConsoleTextAttribute 0-0-0 251-193-1
- Cls
- @Call :DrawMoon
- @Call :SetConsoleTextAttribute 0-0-0 16-132-186
- @Call :DrawChr 22 3 "%Chr[1]%"
- @Call :DrawChr 57 3 "%Chr[2]%"
- @Call :DrawChr 92 3 "%Chr[3]%"
- @Call :DrawChr 127 3 "%Chr[4]%"
- @Goto :Eof
-
- %================================================================%
- %= 日期: 2022 年 9 月 10 日 =%
- %= 名称: DrawMoon =%
- %= 作用: 输出月亮 =%
- %= 备注: 此函数要访问环境变量 _x_ / _y_ / _Temp_ =%
- %================================================================%
- :DrawMoon
- %={=%
- Set _x_=1
- Set _y_=1
- For /L %%_ in (1,1,11) Do (
- Set /A "_y_=%%_"
- For /L %%? in (1,1,11) Do (
- Set /A "_x_=%%?"
- Set /A "_Temp_=!_x_!*!_x_!+!_y_!*!_y_!-121"
- If !_Temp_! Leq 0 Set /P=圹< Nul
- )
- @Call :GotoXY 1 %%_
- )
- %={=%
- @Goto :Eof
-
- %================================================================%
- %= 日期: 2022 年 9 月 10 日 =%
- %= 名称: DrawChr =%
- %= 作用: 输出点阵字符 =%
- %= 参数: x 字符左上角 X 轴坐标 =%
- %= 参数: y 字符左上角 Y 轴坐标 =%
- %= 参数: Code 点阵数据 =%
- %= 备注: 此函数要访问环境变量 _._ / _.._ / _..._ / _x_ / _y_ =%
- %================================================================%
- :DrawChr <x> <y> <Code>
- %={=%
- Set /A "_x_=%1"
- Set /A "_y_=%2"
- For %%_ in (%~3) Do (
- Set "_..._="
- Set /A "_.._=0"
- Set /A "_._=%%_"
- For /L %%? in (0,1,15) Do (
- Set /A "_.._=!_._!%%2"
- Set "_..._=!_.._!!_..._!"
- Set /A "_._=!_._!-!_.._!"
- Set /A "_._=_._/2"
- )
- Set _..._=!_..._:1=圹!
- Set _..._=!_..._:0= !
- Call :GotoXY !_x_! !_y_!
- Echo.!_..._!
- Set /A "_y_+=1"
- %= 下面这句是为了让画面更有年代感,可以删去 =%
- Help > Nul 2> Nul
- )
- Echo.
- %=}=%
- @Goto :Eof
-
- %================================================================================================================================%
- %= VT100 函数 =%
- %================================================================================================================================%
-
- %================================================================%
- %= 日期: 2022 年 9 月 9 日 =%
- %= 名称: InitVT100 =%
- %= 作用: 初始化 Windows 10 的 虚拟终端序列 =%
- %================================================================%
- :InitVT100
- %= { =%
-
- %= 获取 ESC 字符 =%
-
- Set "ESC="
-
- %= 如果没有定义 ESC 字符,这个过程是为了防止论坛误吞上文的 ESC 字符 =%
- If Not Defined ESC (
-
- For /F "Delims=#" %%_ in ('Prompt #$E# ^& Echo On ^& For %%$ in ^(1^) Do DosKey') Do Set "ESC=%%_"
-
- )
-
- %= } =%
- @Goto :Eof
-
- %================================================================%
- %= 日期: 2022 年 9 月 9 日 =%
- %= 名称: GotoXY =%
- %= 作用: 定位光标到指定位置 =%
- %= 参数: X 光标的 X 轴坐标,如果省略或设为 0,则设其为1 =%
- %= 参数: Y 光标的 Y 轴坐标,如果省略或设为 0,则设其为1 =%
- %================================================================%
- :GotoXY <X> <Y>
- %= { =%
-
- %= 如果没有定义 ESC 字符 =%
- If Not Defined ESC (
-
- @Call :InitVT100
-
- )
-
- %= 定位光标 =%
- Set /P=%ESC%[%2;%1H< Nul
-
- %= } =%
- @Goto :Eof
-
- %================================================================%
- %= 日期: 2022 年 9 月 9 日 =%
- %= 名称: SetConsoleTextAttribute =%
- %= 作用: 设置控制台文本颜色 =%
- %= 参数: BGCOL 背景 RGB 颜色值,格式为R-G-B =%
- %= 参数: FGCOL 前景 RGB 颜色值,格式为R-G-B =%
- %================================================================%
- :SetConsoleTextAttribute <BGCOL> <FGCOL>
- %= { =%
-
- %= 如果没有定义 ESC 字符 =%
- If Not Defined ESC (
-
- @Call :InitVT100
-
- )
-
- %= 设置背景色 =%
- For /F "Delims=-, Tokens=1,2,3" %%I in ("%1") Do (
- Set /P=%ESC%[48;2;%%I;%%J;%%Km< Nul
- )
-
- %= 设置前景色 =%
- For /F "Delims=-, Tokens=1,2,3" %%I in ("%2") Do (
- Set /P=%ESC%[38;2;%%I;%%J;%%Km< Nul
- )
-
- %= } =%
- @Goto :Eof
-
- %================================================================%
- %= 日期: 2022 年 9 月 9 日 =%
- %= 名称: SetConsoleCursorInfo =%
- %= 作用: 设置控制台光标属性 =%
- %= 参数: CursorVisibility 光标可见和闪烁状态,取值1~4,分别为: =%
- %= 1 显示光标 =%
- %= 2 隐藏光标 =%
- %= 3 开始光标闪烁 =%
- %= 4 停止闪烁光标 =%
- %= 参数: CursorShape 自定义光标形状,取值0~6,分别为: =%
- %= 0 用户配置的默认光标形状 =%
- %= 1 闪烁块光标形状 =%
- %= 2 稳定块光标形状 =%
- %= 3 闪烁下划线光标形状 =%
- %= 4 稳定下划线光标形状 =%
- %= 5 闪烁条形光标形状 =%
- %= 6 稳定条形光标形状 =%
- %================================================================%
- :SetConsoleCursorInfo <CursorVisibility> <CursorShape>
- %= { =%
-
- %= 如果没有定义 ESC 字符 =%
- If Not Defined ESC (
-
- @Call :InitVT100
-
- )
-
- %= 设置光标可见和闪烁状态 =%
- For /F "Delims=-, Tokens=%1" %%I in ("25h-25l-12h-12l") Do (
- Set /P=%ESC%[?%%I< Nul
- )
-
- Set /P=%ESC%[%2 q< Nul
-
- %= } =%
- @Goto :Eof
-
- %================================================================%
- %= 日期: 2022 年 9 月 9 日 =%
- %= 名称: SetConsoleTextAttributeEx =%
- %= 作用: 格式化控制台文本 =%
- %= 参数: Code 操作代码,取值1~6,分别为: =%
- %= 1 默认,通常相当于Color 07 =%
- %= 2 粗体/亮 =%
- %= 3 无粗体/亮 =%
- %= 4 下划线 =%
- %= 5 无下划线 =%
- %= 6 交换前景色和背景色 =%
- %================================================================%
- :SetConsoleTextAttributeEx <Code>
- %= { =%
-
- %= 如果没有定义 ESC 字符 =%
- If Not Defined ESC (
-
- @Call :InitVT100
-
- )
-
- For /F "Delims=-, Tokens=%1" %%I in ("0-1-22-4-24-7") Do (
- Set /P=%ESC%[%%Im< Nul
- )
-
- %= } =%
- @Goto :Eof
复制代码
作者: HOPE2021 时间: 2022-9-11 12:08
VT100绘图引擎实例3,进度条时钟:- @Mode Con: Cols=128 Lines=9 & Chcp 437 > Nul & Title Clock & @SetLocal EnableExtensions EnableDelayedExpansion & @Echo Off
- %= 利用 VT100 虚拟终端序列来制作绘图引擎的实例 =%
- %= 此程序必须保存为ANSI编码 =%
- @Goto :Main
-
- :Main
- @Call :SetConsoleTextAttribute 0-0-0 58-150-221
- @Cls
- @Call :SetConsoleCursorInfo 2 0
- @Call :Show
- @Exit /B 0
-
- :Show
- @Call :GotoXY 61 2
- @Call :SetConsoleTextAttribute 0-0-0 58-150-221
- Set _Temp_Time_=%Time:~0,8%
- Set /P=#%_Temp_Time_%< Nul
- Set _Temp_Time_=%_Temp_Time_: =0+%
- Set _Temp_Time_=%_Temp_Time_::0=:0+%
-
- Set "Block=圹"
- Set "Block=%Block:~0,1%"
-
- For /F "Delims=:, Tokens=1,2,3" %%i in ("%_Temp_Time_%") Do (
- Set /A _Temp_H_=%%i
- Set /A _Temp_M_=%%j
- Set /A _Temp_S_=%%k
- )
-
- @Call :SetConsoleTextAttribute 255-255-255 58-150-221
-
- @Call :GotoXY 5 4
- For /L %%i in (0,1,23) Do (
- For /L %%j in (0,1,4) Do (
- If %%i Lss !_Temp_H_! (
- Set /P=#%Block%< Nul
- ) Else Set /P=# < Nul
- )
- )
-
- @Call :GotoXY 5 6
- For /L %%i in (0,1,59) Do (
- For /L %%j in (0,1,1) Do (
- If %%i Lss !_Temp_M_! (
- Set /P=#%Block%< Nul
- ) Else Set /P=# < Nul
- )
- )
-
- @Call :GotoXY 5 8
- For /L %%i in (0,1,59) Do (
- For /L %%j in (0,1,1) Do (
- If %%i Lss !_Temp_S_! (
- Set /P=#%Block%< Nul
- ) Else Set /P=# < Nul
- )
- )
-
- @Goto :Show
-
- %================================================================================================================================%
- %= VT100 函数 =%
- %================================================================================================================================%
-
- %================================================================%
- %= 日期: 2022 年 9 月 9 日 =%
- %= 名称: InitVT100 =%
- %= 作用: 初始化 Windows 10 的 虚拟终端序列 =%
- %================================================================%
- :InitVT100
- %= { =%
-
- %= 获取 ESC 字符 =%
-
- Set "ESC="
-
- %= 如果没有定义 ESC 字符,这个过程是为了防止论坛误吞上文的 ESC 字符 =%
- If Not Defined ESC (
-
- For /F "Delims=#" %%_ in ('Prompt #$E# ^& Echo On ^& For %%$ in ^(1^) Do DosKey') Do Set "ESC=%%_"
-
- )
-
- %= } =%
- @Goto :Eof
-
- %================================================================%
- %= 日期: 2022 年 9 月 9 日 =%
- %= 名称: GotoXY =%
- %= 作用: 定位光标到指定位置 =%
- %= 参数: X 光标的 X 轴坐标,如果省略或设为 0,则设其为1 =%
- %= 参数: Y 光标的 Y 轴坐标,如果省略或设为 0,则设其为1 =%
- %================================================================%
- :GotoXY <X> <Y>
- %= { =%
-
- %= 如果没有定义 ESC 字符 =%
- If Not Defined ESC (
-
- @Call :InitVT100
-
- )
-
- %= 定位光标 =%
- Set /P=%ESC%[%2;%1H< Nul
-
- %= } =%
- @Goto :Eof
-
- %================================================================%
- %= 日期: 2022 年 9 月 9 日 =%
- %= 名称: SetConsoleTextAttribute =%
- %= 作用: 设置控制台文本颜色 =%
- %= 参数: BGCOL 背景 RGB 颜色值,格式为R-G-B =%
- %= 参数: FGCOL 前景 RGB 颜色值,格式为R-G-B =%
- %================================================================%
- :SetConsoleTextAttribute <BGCOL> <FGCOL>
- %= { =%
-
- %= 如果没有定义 ESC 字符 =%
- If Not Defined ESC (
-
- @Call :InitVT100
-
- )
-
- %= 设置背景色 =%
- For /F "Delims=-, Tokens=1,2,3" %%I in ("%1") Do (
- Set /P=%ESC%[48;2;%%I;%%J;%%Km< Nul
- )
-
- %= 设置前景色 =%
- For /F "Delims=-, Tokens=1,2,3" %%I in ("%2") Do (
- Set /P=%ESC%[38;2;%%I;%%J;%%Km< Nul
- )
-
- %= } =%
- @Goto :Eof
-
- %================================================================%
- %= 日期: 2022 年 9 月 9 日 =%
- %= 名称: SetConsoleCursorInfo =%
- %= 作用: 设置控制台光标属性 =%
- %= 参数: CursorVisibility 光标可见和闪烁状态,取值1~4,分别为: =%
- %= 1 显示光标 =%
- %= 2 隐藏光标 =%
- %= 3 开始光标闪烁 =%
- %= 4 停止闪烁光标 =%
- %= 参数: CursorShape 自定义光标形状,取值0~6,分别为: =%
- %= 0 用户配置的默认光标形状 =%
- %= 1 闪烁块光标形状 =%
- %= 2 稳定块光标形状 =%
- %= 3 闪烁下划线光标形状 =%
- %= 4 稳定下划线光标形状 =%
- %= 5 闪烁条形光标形状 =%
- %= 6 稳定条形光标形状 =%
- %================================================================%
- :SetConsoleCursorInfo <CursorVisibility> <CursorShape>
- %= { =%
-
- %= 如果没有定义 ESC 字符 =%
- If Not Defined ESC (
-
- @Call :InitVT100
-
- )
-
- %= 设置光标可见和闪烁状态 =%
- For /F "Delims=-, Tokens=%1" %%I in ("25h-25l-12h-12l") Do (
- Set /P=%ESC%[?%%I< Nul
- )
-
- Set /P=%ESC%[%2 q< Nul
-
- %= } =%
- @Goto :Eof
-
- %================================================================%
- %= 日期: 2022 年 9 月 9 日 =%
- %= 名称: SetConsoleTextAttributeEx =%
- %= 作用: 格式化控制台文本 =%
- %= 参数: Code 操作代码,取值1~6,分别为: =%
- %= 1 默认,通常相当于Color 07 =%
- %= 2 粗体/亮 =%
- %= 3 无粗体/亮 =%
- %= 4 下划线 =%
- %= 5 无下划线 =%
- %= 6 交换前景色和背景色 =%
- %================================================================%
- :SetConsoleTextAttributeEx <Code>
- %= { =%
-
- %= 如果没有定义 ESC 字符 =%
- If Not Defined ESC (
-
- @Call :InitVT100
-
- )
-
- For /F "Delims=-, Tokens=%1" %%I in ("0-1-22-4-24-7") Do (
- Set /P=%ESC%[%%Im< Nul
- )
-
- %= } =%
- @Goto :Eof
复制代码
作者: 帝尊 时间: 2022-9-14 18:21
本帖最后由 帝尊 于 2022-9-14 18:48 编辑
回复 3# HOPE2021
为什么我运行后进度条是σσσσσ这个符号??
保存为ANSI后变成????号了。
抱歉,应该是我系统是英文的原因。
作者: HOPE2021 时间: 2022-9-14 19:33
回复 4# 帝尊
试试看用Visual Studio Code编辑,另存为GB2312编码
作者: 帝尊 时间: 2022-9-14 20:22
回复 5# HOPE2021
改了编码的确正常了。不得不说,大神做的这个东西很有启发,牛逼!
作者: ANSL 时间: 2022-9-16 08:19
很厉害,但是写程序多考虑兼容性问题,因为现在还有很多人用win7,xp
作者: HOPE2021 时间: 2022-9-16 21:30
回复 7# ANSL
您说得很有道理,但事物总有落伍的时候,很多早先的东西都不支持了。现在VT100转义正在壮大,应该尽早赶上国际潮流。此外,兼容的问题也可以最大化减小,VT100转义序列和早期的ANSI是有部分相同的,可以判断版本然后决定使用VT100转义还是ANSI,早期Windows使用ANSI的方法见:
http://www.bathome.net/viewthread.php?tid=8509&highlight=ANSI
作者: ANSL 时间: 2022-9-17 10:32
本帖最后由 ANSL 于 2022-9-17 10:39 编辑
回复 8# HOPE2021我倒是可以接受新事物,但findstr绘图引擎却是最实用的,可以在新系统上运行,也可以在XP运行,(本人电脑win10),(个人感觉)
见:[转载自Dostips] 游戏 劳里的幻想世界 - BAT求助&讨论 - 批处理之家 批处理_BAT脚本_PowerShell_VBS_CMD_DOS_Perl_Python - Powered by Discuz! (bathome.net)对,比如之前的findstr,debug,第三方,16位程序.......
我还是希望尽早淘汰win7,xp我之前也想写这么个东西,没时间,因为兼容性闹心
尝试把VT100技术做成可以被rundll32执行的dll,可惜不行
作者: HOPE2021 时间: 2022-9-17 10:47
本帖最后由 HOPE2021 于 2022-9-17 10:54 编辑
回复 9# ANSL
虽然FindStr能完成日常所需的图形绘制,但功能未免太弱小了,根本不可能彩显特殊字符,像下面两个作品根本不可能用FindStr实现:
https://www.dostips.com/forum/viewtopic.php?f=3&t=8044
https://www.dostips.com/forum/viewtopic.php?f=3&t=8056
而且FindStr的速度太慢,支持的颜色太少,下面的功能就很难用FindStr实现:
https://www.dostips.com/forum/viewtopic.php?f=3&t=9869
作者: bat1152 时间: 2023-1-31 17:51
回复 3# HOPE2021
牛逼啊……
作者: dos-a 时间: 2023-4-9 14:17
回复 11# bat1152
大佬😂😂
作者: 老刘1号 时间: 2023-4-9 22:28
本帖最后由 老刘1号 于 2023-4-9 22:39 编辑
楼主会玩,我也给我的帖子搞几张图去,嘿嘿
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |