标题: [其他] 批处理if命令怎么修改为第二个条件满足才能执行后面的? [打印本页]
作者: chenEric2007 时间: 2023-4-30 10:42 标题: 批处理if命令怎么修改为第二个条件满足才能执行后面的?
错误的那行:if %you%==吸血 if %xx%==0 set /a ghp=%ghp%-%lv%-%lv%-%lv%-%lv%-%lv%&set /a rhp=%rhp%+%lv%+%lv%+%lv%+%lv%+%lv%&echo 吸血成功!&goto zd
想要第二个条件满足才能执行后面的
作者: chenEric2007 时间: 2023-4-30 10:45
:ysdmx
@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
mode con: cols=85 lines=35
title ...
@echo off
for /l %%i in (1,1,100) do (
color 2d&echo -
color 4f&echo -
color 5d&echo -
color 6c&echo -
color 00&echo -
color 2a&echo -
color 4e&echo -
color 36&echo -
)
title 游戏菜单
:cd
cls
color 4e
echo.
echo.
echo.
echo.
echo.
echo ╔━━━━╗
echo ★ 菜单 ★
echo ╚━━━━╝
echo ╔ ╗╔━━━━╗
echo 1 ┃开始游戏┃
echo ╚ ╝╚━━━━╝
echo ╔ ╗╔━━━━╗
echo 2 ┃游戏说明┃
echo ╚ ╝╚━━━━╝
echo ╔ ╗╔━━━━╗
echo 3 ┃退出游戏┃
echo ╚ ╝╚━━━━╝
echo.
echo 请输入选项:
set /p you=
if %you%==1 goto ksyx
if %you%==2 goto yxsm
if %you%==3 goto tcyx
echo 输入错误,请重新输入!
pause>nul
goto cd
:tcyx
echo
exit
:yxsm
color 3f
echo
cls
echo ╲ ╱
echo ╔━╗ ╲ ╱ ╔━━━━━━━━━━━━╗
echo ┃小┃╔━━━╗┃勇士大闯关是升级打怪的游┃
echo ┃机┃┃● ● ┃┃戏,ChEric隆重出品 ┃
echo ┃器┃┃ ☉ ┃┃ ┃
echo ┃人╠╣ ┌┐ ┃╚━━━━━━━━━━━━╝
echo ╚━╝╚━━━╝
ping /n 5 127.1>nul
cls
echo ╲ ╱
echo ╔━╗ ╲ ╱ ╔━━━━━━━━━━━━╗
echo ┃小┃╔━━━╗┃按开始游戏开始,本版本无 ┃
echo ┃机┃┃● ● ┃┃挂,输入勇士名称回车确定┃
echo ┃器┃┃ ☉ ┃┃,武器店是买武器 ┃
echo ┃人╠╣ ┌┐ ┃╚━━━━━━━━━━━━╝
echo ╚━╝╚━━━╝
ping /n 5 127.1>nul
cls
echo ╲ ╱
echo ╔━╗ ╲ ╱ ╔━━━━━━━━━━━━╗
echo ┃小┃╔━━━╗┃装备店是买装备的地方,闲┃
echo ┃机┃┃● ● ┃┃话少说,已打败boss为目标┃
echo ┃器┃┃ ☉ ┃┃升级指导人是升级的地方!┃
echo ┃人╠╣ ┌┐ ┃╚━━━━━━━━━━━━╝
echo ╚━╝╚━━━╝
echo 按任意键返回菜单!
pause>nul
goto cd
:ksyx
echo
cls
title 勇士大闯关1.9
color 37
echo ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
echo ▓ 创建角色 ▓
echo ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
echo.此游戏是1.9版本哦^_^!
echo 说明一下,在建邺城别什么都不选就按回车,否则会关闭!
echo.1、增加了菜单!
echo.2.增加了声音。
echo.3.增加了小机器人!
echo.
echo 请输入勇士昵称:
set /p nc=
echo 登陆中...
pause
echo
set lv=1
set rhp=30
set rhpsx=30
set rmp=30
set rmpsx=30
set rgj=20
set rfy=10
set yl=0
set ds=0
set exp=0
set sjexp=20
set wqmc=无
set wqgj=0
set fzmc=无
set qnfyj=0
set fzfy=0
set ydmc=无
set ydqx=0
set mzmc=无
set mzmf=0
set mfhf=3
set sjexpdz=10
set hh=1
set jcy=0
set xhy=0
set lhd=0
set bsd=1000
set bsdsx=1000
set mb=0
set bg=0
set jnl1=空卡槽
set jnl2=空卡槽
set jnl3=空卡槽
set xixue=0
set /a bosszgr=%random%%%10
:jyc
cls
echo ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
echo ▓ 菜菜城 ▓
echo ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓00▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
echo 昵称:%nc% 气血:%rhp%/%rhpsx% 法力:%rmp%/%rmpsx% 攻击:%rgj% 防御:%rfy%
echo 等级:%lv% 经验:%exp%/%sjexp% 银两:%yl% 点数:%ds% 饱食度:%bsd%/%bsdsx%
echo 武器:%wqmc% 攻击+%wqgj% 服装:%fzmc% 防御+%fzfy% 商城:S 充值:P
echo 腰带:%ydmc% 气血上限+%ydqx% 饰品:%mzmc% 魔法上限+%mzmf% 详细信息:i
echo ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
echo ╲ ╱
echo ╔━╗ ╲ ╱ ╔━━━━━━━━━━━━╗
echo ┃小┃╔━━━╗┃欢迎来到菜菜城!这里是城┃
echo ┃机┃┃∩ ∩ ┃┃市,城市是没有怪的哦!只┃
echo ┃器┃┃ △ ┃┃有出城才能打怪哦! ┃
echo ┃人╠╣ ┌┐ ┃╚━━━━━━━━━━━━╝
echo ╚━╝╚━━━╝
echo. ┏━━━━━┳━━━━━┳━━━━━━━┓
echo ┃1.武器店 ┃8.保存记录┃44444.BOSS之国┃
echo. ┣━━━━━╋━━━━━╋━━━━━━━┛
echo ┃2.服装店 ┃9.读取记录┃
echo. ┣━━━━━╋━━━━━┫
echo ┃3.饰品店 ┃10.修炼塔 ┃
echo. ┣━━━━━╋━━━━━┫
echo ┃4.药店 ┃11.干粮店 ┃
echo. ┣━━━━━╋━━━━━┫
echo ┃5.酒店 ┃ ┃
echo. ┣━━━━━╋━━━━━┫
echo ┃6.升级指导┃ ┃
echo. ┣━━━━━╋━━━━━┫
echo ┃7.出城 ┃ ┃
echo. ┗━━━━━┻━━━━━┛
echo 请输入:
set /p you=
if %you%==1 goto wqd
if %you%==2 goto fzd
if %you%==3 goto spd
if %you%==4 goto yd
if %you%==5 goto jd
if %you%==6 goto sjzdr
if %you%==7 goto cw
if %you%==8 goto svjl
if %you%==9 goto rejl
if %you%==10 goto xlt
if %you%==11 goto shop
if %you%==p goto pay
if %you%==44444 goto bosszg
if %you%==银两 set yl=%yl%+500
if %you%==经验 set exp=100000
if %you%==吃东西 set dd=jyc&goto beibao
if %you%==i goto xxxx
echo
echo 输入错误!请重新输入!
pause
goto jyc
:svjl
echo
cls
echo.
echo 真的要保存记录?
echo.
echo 1.保存记录
echo.
echo 2.返回
set /p zhen=
if %zhen%==1 goto savejl
goto jyc
:savejl
echo
cls&setlocal enabledelayedexpansion
del 勇士大闯关存档
md 勇士大闯关存档>nul 2>nul
for %%a in (lv rhp rmp rmpsx rhpsx bsd bsdsx rgj rfy yl ds exp sjexp wqmc wqgj fzmc fzfy ydmc ydqx mzmc mzmf mfhf sjexpdz hh jcy xhy jnl1 jnl2 jnl3 qnfyj bosszgr xx) do (
echo v!%%a!v>>勇士大闯关存档\%%a.txt
)
cls
echo.
echo 保存记录成功!
pause
goto jyc
:rejl
echo
cls
echo.
echo 真的要读取记录?
echo.
echo 1.读取记录
echo.
echo 2.返回
set /p zhen=
if %zhen%==1 goto readjl
:readjl
if not exist "勇士大闯关存档" goto nojl
cls&setlocal enabledelayedexpansion
for %%b in (lv rhp rmp rmpsx rhpsx bsd bsdsx rgj rfy yl ds exp sjexp wqmc wqgj fzmc fzfy ydmc ydqx mzmc mzmf mfhf sjexpdz hh jcy xhy jnl1 jnl2 jnl3 qnfyj bosszgr xx) do (
set /p %%b2=<勇士大闯关存档\%%b.txt
set /a %%b=!%%b2:~1,-1!
)
cls
echo.
echo 读取记录成功!
pause
goto jyc
:nojl
echo
cls
echo.
echo 没有保存记录!
pause
goto jyc
:wqd
echo
cls
echo ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
echo ▓ 武器店 ▓
echo ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
echo 昵称:%nc% 气血:%rhp%/%rhpsx% 法力:%rmp%/%rmpsx% 攻击:%rgj% 防御:%rfy%
echo 等级:%lv% 经验:%exp%/%sjexp% 银两:%yl% 点数:%ds% 饱食度:%bsd%/%bsdsx%
echo 武器:%wqmc% 攻击+%wqgj% 服装:%fzmc% 防御+%fzfy%
echo 腰带:%ydmc% 气血上限+%ydqx% 饰品:%mzmc% 魔法上限+%mzmf%
echo ▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓
echo ╲ ╱
echo ╔━╗ ╲ ╱ ╔━━━━━━━━━━━━╗
echo ┃小┃╔━━━╗┃这里是武器店,武器店可以┃
echo ┃机┃┃∩ ∩ ┃┃购买武器来提升攻击力,打┃
echo ┃器┃┃ △ ┃┃怪可获得金钱! ┃
echo ┃人╠╣ ┌┐ ┃╚━━━━━━━━━━━━╝
echo ╚━╝╚━━━╝
echo 名称 属性 价格
echo 1.红缨枪 攻击+10 100
echo 2.曲尖枪 攻击+30 100
echo 3.锯齿矛 攻击+60 200
echo 4.乌金三叉戟 攻击+100 255
echo 5.火焰枪 攻击+150 255
echo 6.墨杆金钩 攻击+200 255
echo 7.玄铁矛 攻击+250 255
echo 8.金蛇信 攻击+310 1000
echo 9.丈八点钢矛 攻击+380 1000
echo 10.暗夜 攻击+450 10000
echo 11.梨花 攻击+450 10000
echo 12.霹雳 攻击+450 10000
echo 0.返回
echo.
echo 请输入:
set /p you=
if %you%==1 goto hyq
if %you%==2 goto qjq
if %you%==3 goto jcm
if %you%==4 goto wjsyc
if %you%==5 goto huoyanqiang
if %you%==6 goto mgjg
if %you%==7 goto xtm
if %you%==8 goto jsx
if %you%==9 goto zbdgm
if %you%==10 goto ay
if %you%==11 goto lh
if %you%==12 goto pl
if %you%==0 goto jyc
echo.
echo 输入错误!请重新输入!
pause
goto wqd
:hyq
set zwqmc=红缨枪
set /a zwqgj=10
set /a wqjg=100
goto wqgm
:qjq
set zwqmc=曲尖枪
set /a zwqgj=30
set /a wqjg=100
goto wqgm
:jcm
set zwqmc=锯齿矛
set /a zwqgj=60
set /a wqjg=200
goto wqgm
:wjsyc
set zwqmc=乌金三夜叉
set /a zwqgj=100
set /a wqjg=255
goto wqgm
:huoyanqiang
set zwqmc=火焰枪
set /a zwqgj=150
set /a wqjg=255
goto wqgm
:mgjg
set zwqmc=墨杆金钩
set /a zwqgj=200
set /a wqjg=255
goto wqgm
:xtm
set zwqmc=玄蛇矛
set /a zwqgj=250
set /a wqjg=255
goto wqgm
:jsx
set zwqmc=金蛇信
set /a zwqgj=310
set /a wqjg=1000
goto wqgm
:zbdgm
set zwqmc=丈八点钢矛
set /a zwqgj=380
set /a wqjg=1000
goto wqgm
:ay
set zwqmc=暗夜
set /a zwqgj=450
set /a wqjg=10000
goto wqgm
:lh
set zwqmc=梨花
set /a zwqgj=450
set /a wqjg=10000
goto wqgm
:pl
set zwqmc=霹雳
set /a zwqgj=450
set /a wqjg=10000
goto wqgm
:wqgm
if %wqjg% leq %yl% goto gmwqcg
echo.
echo
echo 银两不足,购买失败!
pause
goto wqd
:gmwqcg
set /a yl=%yl%-%wqjg%
set wqmc=%zwqmc%
set wqgj=%zwqgj%
set /a rgj=%rgj%+%wqgj%
echo
echo.
echo 购买成功!
pause
goto wqd
作者: chenEric2007 时间: 2023-4-30 10:47
https://pan.baidu.com/s/13ZCkLKQmUW26Ud7VQ5IeWg?pwd=Eric
作者: 77七 时间: 2023-4-30 12:28
本帖最后由 77七 于 2023-4-30 12:30 编辑
- if %you%==吸血 if %xx%==0 (
- set /a ghp=ghp-lv*5
- set /a rhp=rhp+lv*5
- echo 吸血成功!
- goto zd
- )
复制代码
- if %you%==吸血 if %xx%==0 ((set /a ghp=ghp-lv*5) & (set /a rhp=rhp+lv*5) & (echo 吸血成功!) & (goto zd))
复制代码
作者: Batcher 时间: 2023-4-30 15:31
回复 1# chenEric2007
如果没有及其特殊的需要,不建议把它们都写在一行里面。
作者: chenEric2007 时间: 2023-4-30 17:01
回复 4# 77七
出错了,闪退,不过还是谢谢
作者: 77七 时间: 2023-4-30 17:21
回复 6# chenEric2007
检查%you% %xx% 是不是空值
作者: chenEric2007 时间: 2023-4-30 18:00
回复 7# 77七
居然被你猜对了,和我在看你消息之前检查到的问题一模一样!为表感谢https://pan.baidu.com/s/1Qb2W_BHZ3bNT5O9PPK0mBQ?pwd=Eric
作者: chenEric2007 时间: 2023-4-30 18:55
回复 4# 77七
这是有什么上限吗?我只要在写一个:xxx 然后再goto xxx结果就会闪退,这是怎么回事
作者: 77七 时间: 2023-4-30 19:34
回复 9# chenEric2007
不要在 ()内写标签
作者: chenEric2007 时间: 2023-5-1 10:39
回复 10# 77七
这是什么意思,我是想解决闪退的问题
作者: 77七 时间: 2023-5-1 14:17
回复 11# chenEric2007
如果不能准确描述问题,提供全部代码。goto 闪退原因,标签写在括号内算是常见的了。复制代码
作者: chenEric2007 时间: 2023-5-1 22:06
回复 12# 77七
那我没有,就是按规范写,只是一个文件中有太多:xxx,毕竟这种rpg要很多场景
作者: Batcher 时间: 2023-5-2 08:45
回复 9# chenEric2007
建议以后不要再说“不行”、“一闪而过”、“没有反应”之类的话,因为这对于想要给你进一步帮助的人来说没有任何意义。
希望大家都能学会的一个知识点是:如何查看代码的报错信息。
请参考Q-01观察一下哪行代码在报错以及详细的报错信息:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
如果还是没线索,请把完整bat文件上传到网盘我试试。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |