Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Помогите с написанием bat файла для проверки запущенного процесса.

Ответить
Настройки темы
CMD/BAT - [решено] Помогите с написанием bat файла для проверки запущенного процесса.

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


При автозагрузке запускается процесс xxx.exe
Пользователь может закрыть этот процесс, случайно или специально.
Можно ли написать пакетный файл, чтобы каждые n минут проверял наличие этого процесса и в случпе его отсутствия запускал его по новой?

Отправлено: 11:40, 26-03-2009

 


Moderator


Сообщения: 53441
Благодарности: 15497

Профиль | Отправить PM | Цитировать


Stranger404, пример для блокнота:
Код: Выделить весь код
@Echo Off
SetLocal EnableExtensions

Set ProcessName=notepad.exe
TaskList /FI "ImageName EQ %ProcessName%" | Find /I "%ProcessName%"
If %ErrorLevel% NEQ 0 Start %windir%\%ProcessName%
Скрипт добавить в Планировщик заданий.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:08, 26-03-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо!

Отправлено: 12:21, 26-03-2009 | #3


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


Stranger404, учтите, что предложенный выше скрипт зависим от версии Windows и на Windows XP Home, например, работать не будет (tasklist.exe в ней отсутствует).
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:36, 26-03-2009 | #4



Moderator


Сообщения: 53441
Благодарности: 15497

Профиль | Отправить PM | Цитировать


Тогда можно VBS-скриптом:
Код: Выделить весь код
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")

Set colProcesses = objWMIService.ExecQuery( _
    "Select Name From Win32_Process " _
    & "Where Name = 'notepad.exe'")

If colProcesses.Count = 0 Then
  Set objShell = Wscript.CreateObject("Wscript.Shell")
  objShell.Run "notepad.exe"
End If
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:41, 26-03-2009 | #5


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Спасибо, мне первый подошел отлично.
VBS как запасной вариант)

Отправлено: 12:48, 26-03-2009 | #6


Аватара для Fresh96

Старожил


Сообщения: 194
Благодарности: 61

Профиль | Отправить PM | Цитировать


не уверен, но кажется проблема похожая...

ПРОБЛЕМА.

может как то можно решить с помощью bat/cmd.

Отправлено: 01:01, 20-05-2009 | #7


Старожил


Сообщения: 247
Благодарности: 7

Профиль | Сайт | Отправить PM | Цитировать


Petya V4sechkin,

В конце установки ОС Windows 7 появляется сообщение о том, что идёт настройка рабочего стола и через какое-то время появляется рабочий стол. Мне нужно после загрузки рабочего стола запустить reg-файл. Могу ли ипользовать Ваш код для этого?

Как-то так:
Код: Выделить весь код
@Echo Off
SetLocal EnableExtensions

Set ProcessName=explorer.exe
TaskList /FI "ImageName EQ %ProcessName%" | Find /I "%ProcessName%"
If %ErrorLevel% NEQ 1 start /wait regedit /s %DiskRoot%\Win7ProSP1\Install\hkcu.reg
Я в этом не разбираюсь, поэтому не знаю правильно ли я навоял.

Спасибо.

Отправлено: 15:43, 16-08-2011 | #8


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Подскажите, как правильно написать поиск и убийство процесса без вывода в командную строку служебных сообщений.
Без 1>Nul 2>nul процесс убивается, но выводятся служебные сообщения.
С 1>Nul 2>nul процесс не убивается, зато и сообщений нет.
Код: Выделить весь код
@Echo Off
SetLocal enabledelayedexpansion

set "dr=%USERPROFILE%\Local Settings\Temporary Internet Files\Content.Word"

for /f "delims=*" %%i in ('dir /b/a-d "%dr%\*.*" 2^>nul') do (
 1>Nul 2>nul tasklist|findstr /bic:"winword.exe"&&(taskkill /F /IM winword.exe&echo Word закрыт принудительно)
)
pause

Отправлено: 17:48, 24-11-2011 | #9


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


sov44, попробуйте так:
Код: Выделить весь код
for /f "delims=*" %%i in ('dir /b/a-d "%dr%\*.*" 2^>nul') do (
 1>Nul tasklist /nh |findstr /bic:"winword.exe"&&(taskkill /F /IM winword.exe&echo Word закрыт принудительно)
)

Отправлено: 19:12, 24-11-2011 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Помогите с написанием bat файла для проверки запущенного процесса.

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Помогите с написанием *.bat файла. systeman Хочу все знать 14 02-07-2015 15:37
Проверка запущенного процесса Anarasius AutoIt 2 25-06-2014 11:39
VBS/WSH/JS - помогите с написанием парсера txt файла NAW1986 Скриптовые языки администрирования Windows 2 15-06-2009 09:18
Java - Отслеживание состояния запущенного процесса EvgeniyQQQ Программирование и базы данных 15 02-10-2007 13:20
А можно для уже запущенного процесса сменить user-a ? ukms Программирование и базы данных 6 23-10-2002 13:51




 
Переход