我此时出乎意料

时间:2017-10-03 14:13:06

标签: batch-file if-statement

我正在制作带有批处理文件的纸牌游戏,但是我此时我意外所以我可以在不改变变量的情况下做到这一点。

set n1=IJ I
set m1=I HI
set n2=IJ I
set m2=I DI
if %n1%==%n2% (
    if %n1%==IJ I set WL=win
)else (
set WL=lose
)
echo +--+ +--+
echo %n1% %n2%
echo %m1% %m2%
echo +--+ +--+
echo   %WL%

所以我需要改变卡的形状或什么?

2 个答案:

答案 0 :(得分:1)

您需要在IF语句中使用变量和值周围的引号。

像这样:

set n1=IJ I
set m1=I HI
set n2=IJ I
set m2=I DI
if "%n1%"=="%n2%" (
    if "%n1%"=="IJ I" set WL=win
) else (
set WL=lose
)
echo +--+ +--+
echo %n1% %n2%
echo %m1% %m2%
echo +--+ +--+
echo   %WL%

答案 1 :(得分:0)

表达式并没有评估任何内容,这就是为什么不期望I。我认为那些应该是字符串?您目前拥有的是两个符号IJI,没有任何操作符,它们无法正常工作。顶部的4组应该用引号括起来,但我纯粹猜测,如下所示:

set n1="IJ I"
set m1="I HI"
set n2="IJ I"
set m2="I DI"
if %n1%==%n2% (
    if %n1%==IJ I set WL=win
) else (
set WL=lose
)
echo +--+ +--+
echo %n1% %n2%
echo %m1% %m2%
echo +--+ +--+
echo   %WL%