因为每次我尝试将一个单词分配给一个单词时它不起作用,它会产生1,2,3或4,因为有4个变量。
:foodrandom
set /a dish=0
set /a rfood1=4*%random%/32768+1
IF %rfood1%==1 set /a food1=carrots
IF %rfood1%==2 set /a food1=potatoes
IF %rfood1%==3 set /a food1=cabbage
IF %rfood1%==4 set /a food1=corn
set /a rfood2=4*%random%/32768+1
IF %rfood2%==1 set /a food2=hazelnuts
IF %rfood2%==2 set /a food2=acorns
IF %rfood2%==3 set /a food2=apples
IF %rfood2%==4 set /a food2=strawberries
set /a rfood3=4*%random%/32768+1
IF %rfood3%==1 set /a food3=parsley
IF %rfood3%==2 set /a food3=sage
IF %rfood3%==3 set /a food3=rosemary
IF %rfood3%==4 set /a food3=thyme
echo You make a nice meal from a few %rfood1%, some %rfood2% and scent it with some %rfood3%.
echo You win.
ping localhost -n 5 >nul
答案 0 :(得分:4)
您需要查看SET
命令的说明。
set variable=string
将字符串分配给变量。 set /A variable=expression
计算算术表达式并将数值结果赋给变量。在表达式中,您可以仅使用其名称来使用另一个变量的值。
因此...
您的命令set /a food1=carrots
意味着为food1
分配carrots
的相同数值;如果此变量不存在或包含非数字值,请指定零。也许预期的结果是set food=carrots
?
另外,请注意,您没有显示应该包含字符串的food1, food2 or food3
变量的值,您只需显示rfood...
数字变量的值......