Показать полную графическую версию : [решено] Получить текущий PID консоли
Bruce Wayne
26-02-2013, 00:27
Доброе время суток!
Извиняюсь, если эта тема уже была поднята, но я не нашёл таковой: подскажите, пожалуйста, как можно получить текущий PID данного Bat-файла, если его окно скрыто? Если окно есть, то всё легко и просто... Вроде, можно через WMIC как-то... Заранее спасибо!
Bruce Wayne, PID пакетного файла получить невозможно, ибо, хоть его расширение числится среди исполняемых, ему нужен хост-испонитель, каковым является командный процессор cmd.exe. Вот его PID получить можно.
Простой (отнюдь не гарантированный, и вовсе не изолированный) способ состоит в том, чтобы дать заголовку окна консоли случайное имя, затем выделить процесс, имеющий окно с таким заголовком. Полагаю, речь:
Если окно есть, то всё легко и просто... »
именно про него?
Тогда попробуйте воспользоваться, например, WSH: WSH: как из скрипта определить его идентификатор процесса (PID) (http://forum.script-coding.com/viewtopic.php?id=2454).
Bruce Wayne
26-02-2013, 13:09
Iska, спасибо большое!) Да, я написал бред, чтобы показать полную суть вопроса :D
Bruce Wayne
14-04-2013, 13:52
Получилось реализовать вот таким методом (работает даже при скрытом окне):
@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
Может, пригодится кому :)
Foreigner
14-04-2013, 14:35
Bruce Wayne,
Не работает. Выдает PID консоли.
screenshot (http://i.imgur.com/466igJ3.png)
Foreigner, на xp pro x86 работает
Foreigner, а что должно быть? Пакетный файл, запущенный из командного процессора, не порождает нового процесса cmd.exe.
Foreigner
14-04-2013, 22:09
а что должно быть? »
Я так понял, что:
получить текущий PID данного Bat-файла »
Ну, сам пакетный файл не может иметь PID: он хоть и числится в исполняемых, но — обычный текст. Потому корректно вопрос будет звучать так: «получить PID командного процессора, исполняющего данный пакетный файл».
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.