4

У меня есть cmd-файл, который выполняет приложение (exe), которое может возвращать определенный код ошибки в некоторых случаях. Этот cmd запускается планировщиком каждый день.
Если это не удалось из-за этой конкретной ошибки, я хочу иметь возможность перепланировать и повторить задачу каждые 30 минут до 3 раз или в течение следующих 2 часов, прежде чем сдаться до следующего дня.

Как я могу передать код ошибки планировщику, чтобы он повторил попытку автоматически (если это вообще возможно), или как я могу создать новую временную запланированную задачу отработки отказа из исходного cmd?

Он должен работать в основном на серверах Win2003 и Win2008 (x32 или x64).

2 ответа2

1

Используйте скрипт (командный файл) для вызова вашего приложения, проверки кода ошибки и условного повторного его выполнения или выхода.

Затем запланируйте сценарий вместо приложения.

1

просто попробуйте выполнить команду, дождитесь сбоя и повторите ее. вы можете использовать ping для фальсификации команды sleep (или получить файл sleep.exe из набора ресурсов, или взломать свой собственный, или использовать vbscript). в любом случае, просто запланируйте этот сценарий ежедневно:

@echo first try here
@if not errorlevel 42 goto end
@ping 127.0.0.1 -w 1000 > NUL

@echo second try here
@if not errorlevel 42 goto end
@ping 127.0.0.1 -w 2000 > NUL

@echo third try here
@if not errorlevel 42 goto end
@ping 127.0.0.1 -w 3000 > NUL

@echo will try again tomorrow

:end
@echo finish %errorlevel%

замените 42 на код выхода, который вас интересует, и замените -w 1000 на время в миллисекундах, которое вы хотите ожидать между каждой повторной попыткой.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .