我試圖做一個批處理比賽,但每次我嘗試運行它得到錯誤缺少操作數集在這個時候這裏意想不到的時間是代碼:缺少操作數錯誤
set /a temp2=(%hp% * %lvl% + %exp% * %exptill% + %wepprice% + %power% * %weppower%)/(%gold% + %pots% * %powergain%)
if not %temp1% equ %temp2% set %temp3%=1
goto home
我試圖做一個批處理比賽,但每次我嘗試運行它得到錯誤缺少操作數集在這個時候這裏意想不到的時間是代碼:缺少操作數錯誤
set /a temp2=(%hp% * %lvl% + %exp% * %exptill% + %wepprice% + %power% * %weppower%)/(%gold% + %pots% * %powergain%)
if not %temp1% equ %temp2% set %temp3%=1
goto home
嘗試把括號圍繞最後一集。你的任何變數是否包含符號?
由於這個問題在技術上仍然沒有答案:把「%」從等式中拿出來。你不需要他們,在這種情況下,他們的傷害遠不止於善。如果它們沒有被定義的話,它們會導致所討論的變量被擴展爲無。如果僅使用變量名稱,如果未定義它們,它們將擴展爲「0」。
set /a temp2=(hp*lvl+exp*exptill+wepprice+power*weppower)/(gold+pots*powergain)
當您檢查temp1中和TEMP2的值,確保它們在檢查之前將0到他們(這在算術失敗「被零除」錯誤照顧的情況下用)定義:
set /a temp1+=0&set /a temp2+=0
您可能還希望確保TEMP3在最後一行也定義:
if defined temp3 if not %temp1% equ %temp2% set "%temp3%=1"
這算術風格會爲Windows 2000及以後的工作。
最可能的問題(很可能)是長操作中的一個變量不存在(或未設置值) – Monacraft