我创建了一个批处理脚本,它足够完整,我可以运行它,所以我加载它,我得到一个错误=1 was not expected at this time
但我不明白我做错了什么,最初我有{ {1}}但我两次都得到同样的错误,有人可以告诉我我做错了什么以及为什么会这样?
if armor=1 ( do...)
答案 0 :(得分:2)
这是两个最大的错误:
使用enemyno代替%enemyno%。设置变量时,只使用非百分比版本。
你的等式需要两个==或EQU才能工作。您的固定命令应如下所示:
set enemyno=%random% %% 30 + 1
我不使用()因为并不总是需要它。
我也看到你正在使用
set /a enemyno=%random% %%30 +1
需要/ a才能工作,否则会将其作为字符串。 (/ a使它保存为数字。) 它看起来像:
var command = @"MERGE [StringData] AS TARGET
USING (VALUES (@DCStringID_Value, @TimeStamp_Value)) AS SOURCE ([DCStringID], [TimeStamp])
ON TARGET.[DCStringID] = SOURCE.[DCStringID] AND TARGET.[TimeStamp] = SOURCE.[TimeStamp]
WHEN MATCHED THEN
UPDATE
SET [DCVoltage] = @DCVoltage_Value,
[DCCurrent] = @DCCurrent_Value
WHEN NOT MATCHED THEN
INSERT ([DCStringID], [TimeStamp], [DCVoltage], [DCCurrent])
VALUES (@DCStringID_Value, @TimeStamp_Value, @DCVoltage_Value, @DCCurrent_Value);";
using (EntityModel context = new EntityModel())
{
for (int i = 0; i < 100; i++)
{
var entity = _buffer.Dequeue();
context.ContextAdapter.ObjectContext.ExecuteStoreCommand(command, new object[]
{
new SqlParameter("@DCStringID_Value", entity.DCStringID),
new SqlParameter("@TimeStamp_Value", entity.TimeStamp),
new SqlParameter("@DCVoltage_Value", entity.DCVoltage),
new SqlParameter("@DCCurrent_Value", entity.DCCurrent),
});
}
}
答案 1 :(得分:0)
您在if语句中进行比较,因此您需要两个等号或使用EQU。
如果武器== 1(转到标签)
如果武器EQU 1(转到标签)