Создать событие с пакетными файлами

Вот чего я хочу достичь. У нас есть база данных архивов электронной почты, которую мы оптимизируем еженедельно. На данный момент мы входим в систему вручную, запускаем команду и следим за состоянием. Оптимизация может занять от 3 до 12 часов, что заставляет нас входить в систему каждые несколько часов и проверять, завершено ли оно или нет и т. Д. Я хочу создать пакетный файл и запланировать задачу для запуска пакетного файла. Теперь, когда запускается пакетный файл, i-событие генерирует идентификатор события (а затем я могу захватить этот идентификатор конца и сгенерировать электронное письмо через нашу систему мониторинга) и аналогичным образом, когда оптимизация завершается, генерировать идентификатор события в журнале приложения. Вот что я хотел сделать:

@echo off
cd C:\Program Files\Quest Software\ArchiveManager
C:\WINDOWS\system32\cmd.exe /K "Archive Full Text Index Service" –optimize
IF errorlevel 1 Goto Stoppd
exit
:Stoppd
eventcreate /l application /t information /so 9999 /id 1 /d "the optimization has started "
:end

Мне очень плохо с пакетными файлами и скриптами. Может кто-нибудь, пожалуйста, посоветовать, как создать событие.? Спасибо

2 ответа

Во-первых, cmd /k операция должна вернуть errorlevel из 0 если он был запущен правильно, то ваш звонок eventcreate должно произойти до вашего exit команда, а не после вашего :Stoppd пометьте, как у вас есть в вашем примере.

Во-вторых, если вы хотите, чтобы ваша архивная операция запускалась как порожденный процесс, вы должны поставить start напротив cmd линия:

start C:\WINDOWS\system32\cmd.exe /K "Archive Full Text Index Service" –optimize

Это позволит запустить ваш процесс, а затем текущая консоль сможет продолжить и запустить 'archive has started' событие.

В-третьих, чтобы создать событие, которое будет создано после завершения операции архивирования, у вас есть пара вариантов:

  1. Вы можете объединить две команды вместе, используя &:

    запустите C:\WINDOWS\system32\cmd.exe /K "Служба архивирования полнотекстовых индексов" - оптимизируйте и создайте событие... 
  2. Вы можете поместить свой вызов архива и последующий вызов события в пакетный файл, а затем вызвать его в своем cmd /k вызов.

    запустите C:\WINDOWS\system32\cmd.exe /K myArchiveAndEventBatch.bat

Было бы приемлемо не создавать идентификатор события и просто использовать почтовую программу, такую ​​как Blat, для отправки электронного письма, когда вы хотите получить предупреждение?

Другие вопросы по тегам