Создать событие с пакетными файлами
Вот чего я хочу достичь. У нас есть база данных архивов электронной почты, которую мы оптимизируем еженедельно. На данный момент мы входим в систему вручную, запускаем команду и следим за состоянием. Оптимизация может занять от 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'
событие.
В-третьих, чтобы создать событие, которое будет создано после завершения операции архивирования, у вас есть пара вариантов:
Вы можете объединить две команды вместе, используя
&
:запустите C:\WINDOWS\system32\cmd.exe /K "Служба архивирования полнотекстовых индексов" - оптимизируйте и создайте событие...
Вы можете поместить свой вызов архива и последующий вызов события в пакетный файл, а затем вызвать его в своем
cmd /k
вызов.запустите C:\WINDOWS\system32\cmd.exe /K myArchiveAndEventBatch.bat
Было бы приемлемо не создавать идентификатор события и просто использовать почтовую программу, такую как Blat, для отправки электронного письма, когда вы хотите получить предупреждение?