怎么做一个结果为中文的随机抽签bat

问题遇到的现象和发生背景

我几乎没有编程知识,想写个随机抽签的bat
获得随机数之后,显示该随机数对应的名字
并且可以按一下抽一次

用代码块功能插入代码,请勿粘贴截图

以下代码是我在记事本上写的,我甚至不知道这代码属于哪个代码块

@echo off
chcp 65001
set a[1]=张三
set a[2]=李四
set a[3]=王五
:a
set /a n=%random【不让发重复符号,这里本应是3个%】3+1
echo %a[n]%
pause
goto a

运行结果及报错内容

如果用echo %a[1]%,能显示出 张三
但如果用echo %a[n]%,则显示 ECHO is off.

我的解答思路和尝试过的方法

这就是我网上搜到的命令,东平西凑出来的东西
不断试错之后,成了现在这个版本
感觉逻辑上好像是没有问题了,实在不知道错在哪了
还请各位帮忙指正


@echo off

setlocal EnableDelayedExpansion
chcp 65001 > nul

set a[1]=张三
set a[2]=李四
set a[3]=王五
set n=

:BEGIN

set /a n=(%random%)%%3+1
echo !a[%n%]!

pause

goto BEGIN

endlocal