我有一个运行batch file的计划任务,即使我可以看到成功完成的结果,但根据任务计划程序,它每次都会失败,错误为0xff 。
我有其他batch file计划也成功完成,并返回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,如果是假的或什么的? 这是怎么回事?
你正在寻找的语法是:
IF "%2"=="SOMETHING" (
当%2为空时,你的行就变成:
IF ==SOMETHING (
这是无效的语法。 把报价放在它使得:
IF ""=="SOMETHING" (
这是有效的。
经过一番testing,我发现IF块没什么问题,它们似乎没有改变错误级别,但搞乱了“%2 ==”的东西 – 那些失败的时代,没有第二个参数被传递给batch file。 所以我不知道如何“安全地”testing一个参数是否存在(也就是说,当它不存在的时候没有错误出现0xff),除此之外可能还有另一个IF ERRORLEVEL。 但无论如何,我只是改变了计划的任务,所以它总是会有第二个参数(不pipe它是不是“什么”),它现在应该返回0x0。