是否可以将字母分配给cmd中的变量?

时间:2011-11-09 19:37:27

标签: variables batch-file cmd

因为每次我尝试将一个单词分配给一个单词时它不起作用,它会产生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

1 个答案:

答案 0 :(得分:4)

您需要查看SET命令的说明。

set variable=string将字符串分配给变量。 set /A variable=expression计算算术表达式并将数值结果赋给变量。在表达式中,您可以仅使用其名称来使用另一个变量的值。

因此...

您的命令set /a food1=carrots意味着为food1分配carrots的相同数值;如果此变量不存在或包含非数字值,请指定零。也许预期的结果是set food=carrots

另外,请注意,您没有显示应该包含字符串的food1, food2 or food3变量的值,您只需显示rfood...数字变量的值......