2016-11-18 89 views
1

我創建了一個批處理腳本,它足夠完整,我可以運行它,所以我加載它,我得到一個錯誤=1 was not expected at this time,但我不明白我做錯了什麼,最初我有if armor=1 (do...)但我同時得到了同樣的錯誤,有人可以告訴我我做錯了什麼,爲什麼會發生這種情況?預計在這個時候沒有錯誤批處理錯誤

:prebattle 
cls 
if armor == 1 (
set php=100 
) 
set /a mlvl=%random% %% 5 + 1 

if weapon=1 (
set pdmg=%random% %% 20 + 1 
) 
if !lvl! geq 1 if !lvl! leq 5 (
set enemyno=%random% %% 3 + 1 
set mdmg=%random% %% 20 + 1 
) 
if !lvl! geq 6 if !lvl! leq 10 (
set enemyno=%random% %% 5 + 1 
set mdmg=%random% %% 50 + 1 
) 
if !lvl! geq 11 if !lvl! leq 15 (
set enemyno=%random% %% 9 + 1 
set mdmg=%random% %% 100 + 1 
) 
if !lvl! geq 21 if !lvl! leq 30 (
set enemyno=%random% %% 15 + 1 
set mdmg=%random% %% 150 + 1 
) 
if !lvl! geq 31 if !lvl! leq 45 (
set enemyno=%random% %% 20 + 1 
set mdmg=%random% %% 200 + 1 
) 
if !lvl! geq 46 if !lvl! leq 60 (
enemyno=%random% %% 30 + 1 
set mdmg=%random% %% 500 + 1 
) 
if enemyno == 1 (
goto enemy1 
) 
if enemyno=2 (
goto enemy2 
) 
if enemyno=3 (
goto enemy3 
) 
if enemyno=4 (
goto enemy4 
) 
if enemyno=5 (
goto enemy5 
) 
if enemyno=6 (
goto enemy6 
) 
if enemyno=7 (
goto enemy7 
) 
if enemyno=8 (
goto enemy8 
) 
if enemyno=9 (
goto enemy9 
) 
if enemyno=10 (
goto enemy10 
) 
if enemyno=11 (
goto enemy11 
) 
if enemyno=12 (
goto enemy12 
) 
if enemyno=13 (
goto enemy13 
) 
if enemyno=14 (
goto enemy14 
) 
if enemyno=15 (
goto enemy15 
) 
if enemyno=16 (
goto enemy16 
) 
if enemyno=17 (
goto enemy17 
) 
if enemyno=18 (
goto enemy18 
) 
if enemyno=19 (
goto enemy19 
) 
if enemyno=20 (
goto enemy20 
) 
if enemyno=21 (
goto enemy21 
) 
if enemyno=22 (
goto enemy22 
) 
if enemyno=23 (
goto enemy23 
) 
if enemyno=24 (
goto enemy24 
) 
if enemyno=25 (
goto enemy25 
) 
if enemyno=26 (
goto enemy26 
) 
if enemyno=27 (
goto enemy27 
) 
if enemyno=28 (
goto enemy28 
) 
if enemyno=29 (
goto enemy29 
) 
if enemyno=30 (
goto enemy30 
) 
goto prebattle 
+0

'if armor == 1'這是一個字符串比較。你沒有比較可變裝甲的價值。 'if weapon = 1''IF'命令的幫助表示使用兩個'='進行字符串比較。再次,您將武器與1比較,而不是變量的值。 – Squashman

+0

@Squashman我已經將可變護甲設置爲1,所以不是 – Yoshirou

+0

呃!你沒有使用這個變量。要引用一個變量,你需要使用百分號。 '%armor%' – Squashman

回答

0

您在if語句中進行比較,因此您需要兩個等號或使用EQU。

如果武器== 1(轉到標籤)如果武器EQU 1(轉到標籤)

+1

我已經說過,在我上面的註釋中,你的代碼是仍然不正確,因爲該變量未被擴展爲該值。您需要使用百分號來將變量擴展爲其值。 – Squashman

+0

謝謝你!真的很感激:) – Yoshirou

+0

@Squashman這很粗魯XD – Yoshirou

2

這是兩個最大的錯誤

使用enemyno代替%enemyno%。設置變量時只使用不是百分比版本。

你的if方程需要兩個==或EQU才能工作。您的固定命令應該如下所示:

if %enemyno%==7 goto enemy7 

我不使用(),因爲它並不總是需要的。

我也看到你正在使用

set enemyno=%random% %% 30 + 1 

這就需要/一個工作,否則就會把它作爲一個字符串。 (/ a使其保存爲數字。) 它看起來像:

set /a enemyno=%random% %%30 +1 
+0

非常感謝!林相對較新的批處理腳本,所以感謝解釋:) – Yoshirou