按进程名称获取pid

时间:2013-10-01 09:25:27

标签: matlab

在MATLAb语言中,为了获得正在运行的进程的pid,我做了:

pid = getpidof('processName.exe')

返回[]

而这个过程在我的窗户上运行?

这是正确的语法吗?

1 个答案:

答案 0 :(得分:4)

我不知道函数getpidof是什么或做什么 - 它似乎不是标准的Matlab函数(2012b)。这是一个快速破解,找到正在运行的进程的pid -

>> [response, tasks] = system('tasklist | find "explorer.exe"');
>> splits = regexp(tasks, ' *', 'split');
>> pid = str2double(splits{2});

如果需要,可以将其包装成函数。请注意,它很慢。

修改 - 这是函数

function pid = getpidof(task)
# Get the process id of a task by name.

    [response, tasks] = system(sprintf('tasklist | find "%s"', task));

    splits = regexp(tasks, ' *', 'split');

    pid = str2double(splits{2});

end