下面这个批处理程序哪里错了

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

我学了三天的批处理,想要实现这个游戏程序即:给电脑和个人设置本金,用户输入赌注,通过随机生成数字比较用户和电脑随机数的大小进行判断用户和电脑的输赢情况。但是我运行了这个bat文件,显示出乱码

问题相关代码,请勿粘贴截图

@echo off
rem 输入界面设置:背景颜色、初始化用户和电脑本金设置
color 0a
set pcmoney=200
set money=2022
echo 你现在有2022元的本金
cls

rem 用户输入赌注的钱
:first
set /p wager=请输入赌注
if %wager% gtr %money% goto error
echo 按任意键继续
cls

rem 用户的骰子显示
set /a user=%random%%%6+1
set /a computer=%random%%%6+1
echo 你的骰子点数为:%user%
echo 电脑的骰子点数为:%computer%
cls

rem 进行判断,输出比赛结果
:judge
if %user% equ %computer% echo 打成平手!& echo 你的资金还有%money% &pause & goto nextpart
if %user% lss %computer% echo 你输了!&money-=wager & pcmoney+=wager & echo 你还有赌资%money% &pause & goto nextpart
if %user% gtr %computer% echo 你赢了!& money+=wager & pcmoney+=wager & echo 你还有赌资%money% &pause & goto nextpart

rem 判断错误时返回
:error
echo 请输入少于本金的数
goto first
cls

rem 判断你的输赢
:nextpart
if !money!lss 0 echo 你输了
if !pcmoney!lss 0 echo 你赢了
cls

运行结果及报错内容

'锛歠irst' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
璇疯緭鍏ヨ祵娉?

img

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

我不知道是哪里错了,还请大家帮忙解答一下

我想要达到的结果

记事本默认编码是uft8需要另存为ansi,还有符号不要用中文符号,变量计算要set /a。


```bash
@echo off
setlocal EnableDelayedExpansion
rem 输入界面设置:背景颜色、初始化用户和电脑本金设置
color 0a
set pcmoney=200
set money=2022
echo 你现在有2022元的本金
echo 按任意键继续
pause>nul
cls

rem 用户输入赌注的钱
:first
set /p wager=请输入赌注
if %wager% gtr %money% goto error
cls

rem 用户的骰子显示
set /a user=%random%%%6+1
set /a computer=%random%%%6+1
echo 你的骰子点数为:%user%
echo 电脑的骰子点数为:%computer%
pause>nul
cls

rem 进行判断,输出比赛结果
:judge
if %user% equ %computer% echo 打成平手!& echo 你的资金还有%money% &pause&cls&goto nextpart
if %user% lss %computer% echo 你输了!&set /a money-=%wager% &set /a pcmoney+=%wager% &echo 你还有赌资!money!&pause&cls&goto nextpart
if %user% gtr %computer% echo 你赢了!&set /a money+=%wager%&set /a pcmoney-=%wager% &echo 你还有赌资!money!&pause&cls&goto nextpart

rem 判断错误时返回
:error
echo 请输入少于本金的数
goto first

rem 判断你的输赢
:nextpart
if !money! lss 0 echo 你输了,游戏结束&pause&exit
if !pcmoney! lss 0 echo 你赢了,游戏结束&pause&exit
goto first

```

你的bat 文件, 在命令行下, type 正常吗?
比如文件名是 test.bat
命令行下运行
type test.bat