我做错了什么或为什么这不起作用?我对批次很新。它说"命令的语法不正确。"
if %nm1% lss %nm2% (
echo voitit:%voitat%
set /p "tupla=Voitonmaksu.1 tuplaus.2 (1/2)."
)
if %nm1%==%nm2% (
set /a voitat=%voitat% / 2
echo voitit:%voitat%
set /a voitot=%voitot% + %voitat%
pause
goto peli
)
if %nm2% lss %nm1%(
echo voitit:0
pause
goto peli
)
if %tupla%==1 (
set /a voitot=%voitot% + %voitat%
pause
goto peli
)
if %tupla%==2 goto tuplaus
答案 0 :(得分:3)
set /a voitat=%voitat% / 2
set /a voitot=%voitot% + %voitat%
这些命令由于delayedexpansion
而无法按预期工作(许多SO文章都在这上面 - 使用顶部栏中的search
工具)
但,因为您正在使用set/a
- 语法允许表达变量"裸体" - 没有%
分隔符,当delayedexpansion
怪癖变得无关紧要时(但无论如何你应该阅读它 - 以避免不可避免的后续问题。)
if %nm2% lss %nm1%(
%nm1%
和(
如果任一参数是非数字的(可能不是,给定它们的名字),那么参数必须是"引用" (适用于任何 if
,其中参数可能包含空格)