此时不会出现批量错误

时间:2016-11-18 18:38:49

标签: shell batch-file

我创建了一个批处理脚本,它足够完整,我可以运行它,所以我加载它,我得到一个错误=1 was not expected at this time但我不明白我做错了什么,最初我有{ {1}}但我两次都得到同样的错误,有人可以告诉我我做错了什么以及为什么会这样?

if armor=1 ( do...)

2 个答案:

答案 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(转到标签)