Назад | Перейти на главную страницу

запланированная задача возвращает ошибку 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 если ложь что ли? В чем дело?

Синтаксис, который вы ищете:

IF "%2"=="SOMETHING" (

Когда% 2 пуст, у вас есть строка:

IF ==SOMETHING (

Это неверный синтаксис. Если поместить в него кавычки, получится:

IF ""=="SOMETHING" (

Это действительно так.

После некоторого тестирования я понял, что блоки IF в порядке, они, похоже, не меняют уровень ошибки, но испортил это «% 2 == что-то» - раз, когда происходили сбои, не было второй параметр, передаваемый в командный файл. Поэтому я не уверен, как «безопасно» проверить, существует ли параметр (то есть, чтобы он не вызывал ошибку 0xff, когда его нет), за исключением, может быть, еще одного IF ERRORLEVEL после этого. Но в любом случае я просто изменил запланированную задачу, чтобы у нее всегда был второй параметр (независимо от того, «что-то» или нет), и, похоже, он возвращал 0x0, как и должен сейчас.