Имя пользователя:
Пароль:
 | Правила  

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

Ответить
Настройки темы
CMD/BAT - [решено] Получить текущий PID консоли

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


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

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


Доброе время суток!

Извиняюсь, если эта тема уже была поднята, но я не нашёл таковой: подскажите, пожалуйста, как можно получить текущий PID данного Bat-файла, если его окно скрыто? Если окно есть, то всё легко и просто... Вроде, можно через WMIC как-то... Заранее спасибо!

Отправлено: 00:27, 26-02-2013

 

Ветеран


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

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


Bruce Wayne, PID пакетного файла получить невозможно, ибо, хоть его расширение числится среди исполняемых, ему нужен хост-испонитель, каковым является командный процессор cmd.exe. Вот его PID получить можно.

Простой (отнюдь не гарантированный, и вовсе не изолированный) способ состоит в том, чтобы дать заголовку окна консоли случайное имя, затем выделить процесс, имеющий окно с таким заголовком. Полагаю, речь:
Цитата Bruce Wayne:
Если окно есть, то всё легко и просто... »
именно про него?

Тогда попробуйте воспользоваться, например, WSH: WSH: как из скрипта определить его идентификатор процесса (PID).
Это сообщение посчитали полезным следующие участники:

Отправлено: 01:53, 26-02-2013 | #2



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

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


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


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

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


Iska, спасибо большое!) Да, я написал бред, чтобы показать полную суть вопроса :D

Отправлено: 13:09, 26-02-2013 | #3


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


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

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


Получилось реализовать вот таким методом (работает даже при скрытом окне):

Код: Выделить весь код
@echo off
for /f "tokens=2 delims==" %%a in (
'"WMIC PROCESS Where (Name="cmd.exe" AND CommandLine LIKE "%%%RANDOM%%RANDOM%%%") Get ParentProcessId /Value"'
) do set PID=%%a
echo %PID%
pause
Может, пригодится кому

Отправлено: 13:52, 14-04-2013 | #4


Ветеран


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

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


Bruce Wayne,

Не работает. Выдает PID консоли.

screenshot

Отправлено: 14:35, 14-04-2013 | #5


Ветеран


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

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


Foreigner, на xp pro x86 работает

Отправлено: 15:14, 14-04-2013 | #6


Ветеран


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

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


Foreigner, а что должно быть? Пакетный файл, запущенный из командного процессора, не порождает нового процесса cmd.exe.

Отправлено: 20:58, 14-04-2013 | #7


Ветеран


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

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


Цитата Iska:
а что должно быть? »
Я так понял, что:
Цитата Bruce Wayne:
получить текущий PID данного Bat-файла »

Отправлено: 22:09, 14-04-2013 | #8


Ветеран


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

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


Ну, сам пакетный файл не может иметь PID: он хоть и числится в исполняемых, но — обычный текст. Потому корректно вопрос будет звучать так: «получить PID командного процессора, исполняющего данный пакетный файл».

Отправлено: 00:27, 15-04-2013 | #9



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] Ключ в pid.inf xp9 Автоматическая установка Windows 2000/XP/2003 3 08-12-2012 16:24
CMD/BAT - остановка службы по PID quazar-ed Скриптовые языки администрирования Windows 11 03-07-2012 10:20
Прочее - Как узнать текущий IP адрес хоста? dmitryst Сетевые технологии 2 23-03-2012 23:44
PID, ProcessName и как узнать who is who rivera Microsoft Windows NT/2000/2003 0 31-10-2011 11:43
Разное - [решено] Что такое PID процесса ? S-400 Microsoft Windows 2000/XP 3 09-05-2009 14:48




 
Переход