回复 2# Echo11
首先,非常感谢你的回答,有讨论才有进步。
附上代码出处- https://c1ino.github.io/c1ino/2019/08-03-colored-echo-in-win10-command-prompt
复制代码 据网上资料,开头那段灵魂代码是个德国大佬写的。
附上我基于上述链接中的代码修改而成的学习代码- @echo off
- title 我的彩虹色阶- 8bit 256色输出.bat
- mode con: cols=40 lines=42
- ::设置窗口大小高40,宽33
- setlocal enabledelayedexpansion
- @for /f "delims=#" %%i in ('prompt #$E#^&echo on^&for %%a in ^(1^) do rem') do set ESC_CHAR=%%i
-
- set /a nlcnt=8
- rem 在这定义了一行有八列
- for /L %%i in (0,1,15) do (
- set /a clrstr=1000+%%i
- set /p "str=%ESC_CHAR%[7;40;38;5;%%im !clrstr:~-3! %ESC_CHAR%[m"<nul
- set /a "newline=(%%i+1)%%nlcnt"
- if "!newline!" equ "0" echo.
- )
- set /a nlcnt=6
- for /L %%i in (16,1,231) do (
- set /a clrstr=1000+%%i
- set /p "str=%ESC_CHAR%[7;40;38;5;%%im !clrstr:~-3! %ESC_CHAR%[m"<nul
- set /a "newline=(%%i+3)%%nlcnt"
- if "!newline!" equ "0" echo.
- )
- set /a nlcnt=8
- for /L %%i in (232,1,255) do (
- set /a clrstr=1000+%%i
- set /p "str=%ESC_CHAR%[7;40;38;5;%%im !clrstr:~-3! %ESC_CHAR%[m"<nul
- set /a "newline=(%%i+1)%%nlcnt"
- if "!newline!" equ "0" echo.
- )
- endlocal
- pause>nul
复制代码 近来事务繁多暂缓此帖学习进度。
最后,再次感谢热心回答。 |