我正在尝试编写一段代码,该代码运行一堆回声以显示文本,等待一秒钟,然后以半秒的间隔将命令提示符的文本和背景颜色更改为随机颜色,然后返回从头开始,但是它检查是否已经运行了回声,因此直接跳过了颜色变化,因此它执行了两次,但这是说goto:z(第18行)的命令语法无效,并且我不明白为什么它不起作用。代码如下
set a=0
set HEX=0123456789ABCDEF
:a
rem (Echoes here)
if %a%==0 goto :c
if %a%==1 goto :b
:c
@TIMEOUT /T 1 /NOBREAK >null
goto :b
:b
if %a%==0 goto :x
if %a%==1 goto :y
:x
set /a "a=1"
goto :z
:y
set /a "a=0"
goto :z
:z
if %a%==1
goto :f
if %a%==0
goto :g
:f
ping 127.0.0.1 -n 1 -w 500> nul
set /a rand1=%random% %% 16
set /a rand2=%random% %% 16
call set hexcolors=%%HEX:~%rand1%,1%%%%HEX:~%rand2%,1%%
color %hexcolors%
:g
goto :a
第28行最初是if %a%a(...)
,但已更正为if %a%(...)
。