我刚刚开始学习自己批处理,我试图制作一个矩阵东西为了好玩。我想要制作的是一个显示“矩阵数字雨”的批处理程序。除非,每当一个 %random:~-1% 数字与另一个 %random:~-1% (目标数字)相等时,它应该以不同的颜色显示该目标数字。 视觉理念
矩阵部分相当容易完成;然而,让一个数字以不同的颜色显示对于菜鸟来说是一个不同的维度。到目前为止,我已经成功地做到了:使矩阵下雨,使文本以不同的颜色显示,并为指定的数字设置条件。这可能吗?
**问题是:** A. 如何从矩阵雨中检测到预定的数字,并使它们(单独)显示为黄色,而不明显破坏矩阵雨? B. 如何创建更多垂直线?
我在下面附加了链接,我从那里得到了答案;以及我当前的批处理脚本。 自定义 %random% 位数:如何在批处理文件中生成 4 位随机数? 不同的文本颜色:如何使批处理文件的特定行的颜色与其他行不同?
@echo off
color 02
SETLOCAL EnableDelayedExpansion
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (
set "DEL=%%a"
)
cls
:start
Ping -l 1 -n 1 -w 1000 1.1.1.1 -4 1>nul 2>&1 REM"delay cause too fast"
set num1=%random:~-2%
set num2=%random:~-2%
set dn=%random:~-2%
if %num1% EQU %num2% (call :color 06 "%random:~-2% %dn% %random:~-2%" & goto start) else (echo %random:~-2% %dn% %random:~-2% & goto start)
:color
echo off
echo %DEL% > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
我尝试过 echo %random:~-1% 。 。 。 %dn% %random:~-1% 但它所做的只是有一行随机数,偶尔会变成黄色。如果能随机出现在不同的垂直线上那就完美了。
我现在会研究数组,但我认为我不会很快得到它。预先感谢您的回答! :D
您的代码带有 ansi 转义序列。
@echo off
color 02
SETLOCAL EnableDelayedExpansion
for /F %%a in ('echo prompt $E ^| cmd') do set "ESC=%%a"
cls
set "off=%ESC%[m"
set "red=%ESC%[0;31m"
set "red_light=%ESC%[1;31m"
set "green=%ESC%[32m"
set "yellow=%ESC%[33m"
REM Show Color Table
REM for /L %%i in (30 1 39) do (
REM echo %%i: %ESC%[0;%%im TEXT %OFF%
REM echo %%i: %ESC%[1;%%im TEXT %OFF%
REM )
:start
Ping -l 1 -n 1 -w 1000 1.1.1.1 -4 1>nul 2>&1 REM"delay cause too fast"
set col1=%random:~-2%
set col2=%random:~-2%
set col3=%random:~-2%
if %col1% GTR %col3% (
set "col1=%yellow%%col1%%OFF%"
)
if %col2% GTR %col3% (
set "col2=%red%%col1%%OFF%"
)
echo %col1% %col2% %col3%
goto :start