我正在使用.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文件包含代码。因此,每一行之前的回声。
任何帮助都是很好的帮助!
感谢。
答案 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
。