计划任务尽管成功,却返回错误 0xff

计划任务尽管成功,却返回错误 0xff

我有一个运行批处理文件的计划任务,尽管我可以看到它成功完成的结果,但根据任务计划程序,它失败并出现错误0xff, 每次。

我已经安排了其他批处理文件也成功完成并返回0x0应该如此。我能看到这些文件之间的唯一区别是工作文件以以下内容结尾:

IF ERRORLEVEL 1 (
    ("notify me" script here)
)

而损坏的版本结尾为:

IF %2==something (
    (run a program here)
    IF ERRORLEVEL 1 (
        (same "notify me" script here)
    )
)

IF 块是否返回0xff如果是假的或者其他什么的?怎么回事?

答案1

您正在寻找的语法是:

IF "%2"=="SOMETHING" (

当 %2 为空时,该行将变为:

IF ==SOMETHING (

这是无效的语法。加上引号后,结果如下:

IF ""=="SOMETHING" (

这是有效的。

答案2

经过一些测试,我发现 IF 块是没问题的,它们似乎不会改变错误级别,但搞砸了的是“%2==something”——失败的时候,没有第二个参数传递给批处理文件。所以我不知道如何“安全地”测试参数是否存在(即,当参数不存在时不会出错 0xff),除非在那之后再出现另一个 IF ERRORLEVEL。但无论如何,我刚刚更改了计划任务,因此它将始终具有第二个参数(无论它是否是“something”),并且它似乎返回了 0x0,就像现在应该的那样。

相关内容