Аналог $1 в Windows (PID последнего запущенного процесса)

Аналог $1 в Windows (PID последнего запущенного процесса)

Как получить PID последнего запущенного процесса в Windows с помощью WScript.Shell или аналогичного?

Я знаю, как запустить процесс и получить его PID:

Set oExec = WshShell.Exec( program )
Set pid = oExec.ProcessID

Теперь проблема в том, что программа является другим пакетом (или может быть VBScript). Пакет запускает реальную программу, PID которой я хотел бы получить.

В Linux (скрипт оболочки) это сделать очень просто.pid=$!

Но что я могу сделать в Windows?

решение1

Я думаю, что в Windows нет эквивалента $!.

Если вы хотите получить PID третьего процесса, вы можете выполнить поиск с помощью WMI. Пример этого можно найти здесьздесь(просто поиск и отображение информации) илиздесь(поиск и завершение процесса).

Если исполняемый файл третьего имени неизвестен, вы можете использоватьОбъект работыкоторый группирует несколько процессов в один объект. И вы можете легко убить их все сразу с помощьюTerminateJobObject.

ВидетьМСДНдля быстрого обзора илиэтот вопрос на StackOverflow.

Однако я не знаю, можно ли использовать эти методы из VBScript.

Связанный контент