Я искал сценарий для получения PID процесса Java на основе значения CommandLine диспетчера задач. ALl эти java-процессы имеют аналогичное значение COmmandLine, но отличаются ключевым словом в CommandLine. Этот процесс не может быть идентифицирован по имени изображения, потому что все они имеют один и тот же java.exe. Есть ли способ? Я поместил ниже код на основе ответа npocmaka вПолучение pid процесса на сервере windows
@echo off
setlocal enableDelayedExpansion
set "command_line="%1""
set "command_line=!command_line:"=%%!"
echo ~~!command_line!~~
for /f "usebackq tokens=* delims=" %%# in (
`wmic process where 'CommandLine like "%command_line%"' get /format:value`
) do (
for /f %%$ in ("%%#") do (
set "%%$"
)
)
echo %ProcessId%
Я использую ключевое слово в CommandLine для идентификации PID. Но когда я выполняю этот скрипт, я получаю неправильный PID. Я предполагаю, что он возвращает сценарии PID, так как скрипт также может содержать ключевое слово. Аргумент при выполнении сценария принимается за ключевое слово
Что такое «CommandLine значения диспетчера задач»? – SomeDude
Я редактировал свой пост. Он содержит ответ –
, вероятно, есть больше процессов с одной и той же командной строкой. Попробуйте использовать 'echo %% $' вместо' set %% $ ', чтобы увидеть, сколько процессов будет применять wmic-запрос, – npocmaka