Делалось для автозапуска обработки Mobi-C
Как проверить запущен ли определенный процес и запустить его если он не запущен Windows Server 2003 RU
Создаем файлик с расширением *.cmd
Содержимое:
@echo off set application=1cv7s.exe tasklist /FI "Пользователь eq ххх" | find /I "%application%" >nul if errorlevel 1 ( echo %application% is not running d:\automation\mobi-c.vbs ) else ( echo %application% is running )
Описание:
Для работы определенной обработки в 1С необходимо контроллировать постоянно запущенный процесс 1С. В случае когда процесс оказывается заркытым — запустить скрипт который откроет 1с и откроет необходимую обработку. Решается такая задача вот как: пакетный файлик помещается в планировщик задач и вызывается каждые 10 минут, в пакетном файле определено название процесса «1cv7s.exe» и имя пользователя под которым запускается данный процесс «xxx«. Далее при помощи команды tasklist проверяется запущен ли у данного пользователя указанный процесс и в случае если процесс не запущен он запускается скриптом, в данном случае mobi-c.vbs.
листинг mobi-c.vbs:
Dim Delay 'время ожидания загрузки 1С 1000 = 1 сек Dim Name 'имя пользователя 1С Dim Password 'пароль пользователя 1С Dim MobiC 'путь ко внешнему отчету Моби-С, допустимо только использование латиницы Delay = 10000 Name = "zzz" Password = "yyy" MobiC = "E:\2009\ExtForms\Mobi-c.ert" set wshShell = wScript.createObject("wScript.shell") wshShell.run """C:\Program Files\1Cv77\BIN\1cv7s.exe"" enterprise /d""E:\2009\"" /n" + Name + " /p" + Password
Описание:
Необходимо указать имя и пароль пользователя, путь к внешней обработке *.ert и путь к 1с приложению