" goto此时出人意料" 。蝙蝠

时间:2015-07-16 02:52:42

标签: batch-file goto

我正在使用.bat文件制作二十一点赌博模拟器。有一次我得到了错误" goto在这个时候出乎意料"。有人知道这个问题的解决方案吗?我已经包含导致问题的代码部分。

$(document).ready(function() {
$(window).scroll(function() {
    var distanceFromTop = $(document).scrollTop();
    if (distanceFromTop >= $('#header').height())
    {
        $('#nav').addClass('fixed');
    }
    else
    {
        $('#nav').removeClass('fixed');
    }
    });
    });

* P.S。我正在使用此.bat文件生成一个新的.bat文件包含代码。因此,每一行之前的回声。

任何帮助都是很好的帮助!

感谢。

2 个答案:

答案 0 :(得分:1)

你对字符串"二十一点的测试!"由于感叹号会失败。尝试用引号包装测试:

Echo if "%%DealerStatus%%" == "Blackjack!" goto DealerWins1

Echo if "%%P4hand%%" == "Blackjack!" goto P4wins1

但我怀疑,您的代码中还有一些其他问题可能会让您失意。 %P4hand%变量是代码段中较早的数字。您打算测试%P4status%吗?您可能还需要检查标记名称的使用是否一致,因为P4wins1以及P4win1正在使用中。

答案 1 :(得分:0)

我给你的第一个建议是将ECHO ON置于文件的顶部(或者只是删除ECHO OFF),再次运行它,并确定哪一行有错误。 Batch想要告诉你什么是错的,但是即使在调试时,每个人总是抑制回声。

那就是说,即使不知道哪一行有错误,我的通灵调试技巧告诉我,某种方式%DealerHand%是空字符串,这导致这两行之一出现语法错误:

if %%DealerStatus%% == %%DealerHand%% goto winCheck1

if %%P4hand%% == %%DealerHand%% goto DealerWins1

运行带有if未定义的%DealerHand%语句或空字符串将显示您看到的错误。您没有显示设置DealerHand的位置,但如果它不应为空,则在输入此代码时需要确保它具有值。

如果DealerHand可能有一个空值,那么你可以通过将变量包装在某些字符中来防止语法错误,这样IF的两边总是有非空字符串。

if {%%DealerStatus%%} == {%%DealerHand%%} goto winCheck1

当两个变量都为空时,评估为if {} == {} goto winCheck1