如果/ Else语句批量

时间:2014-05-25 01:05:08

标签: batch-file if-statement cmd

我试图在Batch / CMD中创建一个RPG游戏。我想这样做,以便当用户输入的数字不是列出的数字时,它只是从最后一个标记重新加载。这是代码:

if %1st%==1 %atk%+25 
if %1st%==2 %def%+25 
if %1st%==3 %hp%+25 
if %1st%==4 %iq%+25 
if %1st%==5 %luck%+25 

if not %1st%==1 goto 1st
if not %1st%==2 goto 1st
if not %1st%==3 goto 1st
if not %1st%==4 goto 1st
if not %1st%==5 goto 1st

1 个答案:

答案 0 :(得分:2)

最好不要让变量以数字开头,因为%1表示传递给脚本的第一个参数。如果您未将任何参数传递给脚本,则解释程序会将这些语句视为if not st%==1 goto 1stif st%==1 %atk%+25,这些语句无效。

您需要将所有%1st%替换为建议的%first%,其余部分如下:
%2nd%%second%
%3rd%%third%
%4th%%fourth%
%5th%%fifth%
%6th%%sixth%
%7th%%seventh%
%8th%%eighth%
%9th%%ninth%

以下是您使用上述更改的代码:

if %first%==1 %atk%+25 
if %first%==2 %def%+25 
if %first%==3 %hp%+25 
if %first%==4 %iq%+25 
if %first%==5 %luck%+25 

if not %first%==1 goto first
if not %first%==2 goto first
if not %first%==3 goto first
if not %first%==4 goto first
if not %first%==5 goto first

我不确定你是如何添加值的,这是使用set /a命令的建议更改:

if %first%==1 set /a atk=%atk%+25 
if %first%==2 set /a def=%def%+25 
if %first%==3 set /a hp=%hp%+25 
if %first%==4 set /a iq=%iq%+25 
if %first%==5 set /a luck=%luck%+25 

if not %first%==1 goto first
if not %first%==2 goto first
if not %first%==3 goto first
if not %first%==4 goto first
if not %first%==5 goto first