Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Variables 批处理-变量/布尔值变化的问题_Variables_Batch File_Cmd - Fatal编程技术网

Variables 批处理-变量/布尔值变化的问题

Variables 批处理-变量/布尔值变化的问题,variables,batch-file,cmd,Variables,Batch File,Cmd,我正在做一个批量RPG,目前我正试图创建一个商店,你可以在那里 买武器和东西。我想这样做,如果玩家有足够的黄金(gld),他们可以购买武器,它会将武器的布尔值更改为true,并从gld变量中拿走20黄金。我做错了什么?它不会减去gold,也不会将布尔值改为true 代码如下: set /p sword="Enter your selected sword number:" if %sword%==1 if %gld% GEQ 20 set /a sword1 EQU true if %swor

我正在做一个批量RPG,目前我正试图创建一个商店,你可以在那里 买武器和东西。我想这样做,如果玩家有足够的黄金(gld),他们可以购买武器,它会将武器的布尔值更改为true,并从gld变量中拿走20黄金。我做错了什么?它不会减去gold,也不会将布尔值改为true

代码如下:

set /p sword="Enter your selected sword number:"
if %sword%==1 if %gld% GEQ 20 set /a sword1 EQU true 
if %sword%==1 if %gld% GEQ 20 set /a gld EQU %gld%-20
if %sword%==1 if %gld% LSS 20 echo You don't have enough gold!

问题是您没有正确使用
set
命令

set /p sword="Enter your selected sword number:"
if %sword%==1 if %gld% GEQ 20 set sword1=true 
if %sword%==1 if %gld% GEQ 20 set /a gld-=20
if %sword%==1 if %gld% LSS 20 echo You don't have enough gold!
您还可以使用一个
if
else
语句来执行相同的操作

set /p sword="Enter your selected sword number:"
if %sword%==1 if %gld% GEQ 20 (
    set sword1=true 
    set /a gld-=20
)  else (
    echo You don't have enough gold!
)