Установка пакета Resource Kit позволяет воспользоваться текущим командным файлом для получения идентификатора процесса командного файла, который выполняется в текущий момент времени. Для использования этого сценария в командной строке необходимо заменить двойные символы процента (%%) на одинарные (%).
for /f "Tokens=*" %%I in (‘f:\tlist ^| grep %0 ^| grep CMD ^| awk "{print $1}"’) do call :SETPID %%I
:next
…….
:SETPID
set MASTER_PID=%1
goto :next
…….
Следующий вариант предполагает использование утилиты tlist, которая предоставляется в пакете Resourse Kit:
for /f "Tokens=1 Delims= " %I in {‘c:\tlist ^|find "%0"’} do goto SETPID %I
:next
…….
:SETPID
set MASTER_PID=%1
goto :next
…….
Вместо команды pulist необходимо использовать команду tlist, так как команда pulist не выдает достаточного объема информации. В данном случае понадобится имя командного файла, которое предоставляется утилитой tlist. Поскольку командная оболочка использует символ “|”, то для отделения этого символа необходимо использовать символ завершения строки “^”.
Существует и еще один вариант строки для программы tlist:
for /f "Tokens=1 Delims= " %I in (‘c:\tlist ^| find "%0"’) do set MASTER_PID=%1