2011-11-09 23 views
1

因爲每次我嘗試將一個單詞分配給一個單詞時,它不起作用,並且它導致1,2,3或4,因爲有4個變量。是否可以將字母指定給cmd中的變量?

: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 
+2

請出示這將導致該問題的腳本部分。 – wallyk

+0

曾用:它是原文。 – Zimano

回答

4

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

set variable=string將字符串賦給變量。 set /A variable=expression評估算術表達式並將數值結果賦值給變量。在表達式中,您可以通過使用其名稱來使用另一個變量的值。

所以......

你的命令set /a food1=carrots平均分配給food1carrots相同的數值;如果此變量不存在或包含非數字值,則分配一個零。也許預期的結果是set food=carrots

另外請注意,你不顯示,理應包含字符串food1, food2 or food3變量的值,你只顯示rfood...數字變量的值...

相關問題