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

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

Ответить
Настройки темы
CMD/BAT - [решено] Как узнать PID дочернего процесса?

Пользователь


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

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


Доброго времени суток!

Мне нужно узнать PID дочернего процесса. Как это реализовать?

Отправлено: 20:39, 01-12-2012

 

Ветеран


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

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


В принципе, кроме особых случаев — никак. Можно, например, поизвращаться с классом «wmic.exe» Process и его методом Create, но это не для слабонервных.

Возможны обходные пути. Приведите детальную информацию.

Отправлено: 06:18, 02-12-2012 | #2



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

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


Пользователь


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

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


Я пишу панель управления своим хостингом. Так вот там мне надо сделать так, чтобы батник запускал другие программы и останавливал их. Много программ совпадают в названии, поэтому надо как-то работать с PID'ом. То есть нужно создавать и "убивать" дочерние процессы.

Отправлено: 13:24, 02-12-2012 | #3


Пользователь


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

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


Хорошо, давайте подойдем с другой стороны. Мне надо узнать PID запущенной программы. То есть я запускаю любую программу из батника и мне надо узнать PID только что запущенной программы. Этого достаточно для моей задачи.

Отправлено: 13:56, 02-12-2012 | #4


Ветеран


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

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


Запускайте не пакетным файлом. Используйте для этого WSH или PoSH.

P.S. У Вас не тот же посыл: CMD/BAT - [решено] Присвоение pid'a процессу при запуске.?

Отправлено: 14:16, 02-12-2012 | #5


Пользователь


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

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


Вот нашел рабочий код. Он перезапускает программу по времени. А у меня неизвестно имя программы, известно только ее расположение.


@echo off

set PNAME=notepad.exe
set PPATH=%windir%\system32\notepad.exe

set TITLE=%RANDOM%%RANDOM%
TITLE %TITLE%
:LOOP
(Start "" "%PPATH%"
ping -w 780000 192.0.2.0 -n 1 >nul
for /f "tokens=2 delims=," %%a in ('TaskList /NH /FO CSV /FI "WINDOWTITLE eq %TITLE%"') do (
for /f "skip=1" %%b in ('WMIC PROCESS WHERE "ParentProcessId=%%~a AND Name='%%PNAME%%'" Get ProcessId^,SessionID') do (
taskkill /PID "%%b"
)))
GoTo:LOOP

Отправлено: 14:52, 02-12-2012 | #6


Пользователь


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

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


Так можете дать код, который бы показывал PID процесса при его запуске?

Отправлено: 15:16, 02-12-2012 | #7


Ветеран


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

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


Цитата dima05605:
А у меня неизвестно имя программы, известно только ее расположение. »
Это как? Как можно запустить приложение, не указывая имя его исполняемого файла?

Цитата dima05605:
Так можете дать код, который бы показывал PID процесса при его запуске? »
Повторю.

Отправлено: 15:20, 02-12-2012 | #8


Пользователь


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

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


Мне WSH скрипт не нужен. Ладно, буду сам что-то решать...

Отправлено: 15:25, 02-12-2012 | #9


Ветеран


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

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


dima05605, На примере калькулятопа
Код: Выделить весь код
@echo off
setlocal

set "wmic=wmic process call create "calc" | findstr "ProcessId""
for /f "tokens=2 delims==;" %%i in (' "%wmic%" ') do set "pid=%%i"

echo %pid%

timeout /t 3
taskkill /pid %pid%
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:44, 02-12-2012 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Узнать размер памяти процесса mishgan2004 Скриптовые языки администрирования Windows 3 14-08-2011 09:10
[решено] Как узнать запущены ли два процесса с одним именем CyberStyLe AutoIt 7 18-10-2009 10:14
VBA - Как узнать имя процесса-родителя akkorn Программирование и базы данных 4 16-03-2009 11:33
Как узнать имя процесса по смещению Andre505 Microsoft Windows 95/98/Me (архив) 3 28-09-2003 00:29
Как узнать имя процесса по смещению Andre505 Программирование и базы данных 2 27-09-2003 13:55




 
Переход