2011-11-09 8 views
1

4つの変数があるため、1つの単語に1つの単語を割り当てようとするたびに、その単語は機能しません。その結果、1、2、3または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

...あなただけのrfood...数値変数の値を示して、あなたはおそらく文字列が含まfood1, food2 or food3変数の値を表示されないことに注意して問題が発生したスクリプトの一部をご提示ください。 – wallyk

+0

改訂履歴:元のテキストです。 – Zimano

答えて

4

SETコマンドの説明を確認する必要があります。

set variable=stringは、変数に文字列を割り当てます。 set /A variable=expressionは算術式を評価し、数値結果を変数に代入します。式では、別の変数の値をその名前だけを使って使うことができます。

そう...

あなたのコマンドset /a food1=carrotsfood1carrotsの同じ数値を割り当てる意味。この変数が存在しないか数値以外の値を含む場合は、ゼロを割り当てます。おそらく、意図した結果はset food=carrotsでしょうか?また

関連する問題