如何通过MATLAB命令获取外部程序(由MATLAB调用)的PID?

2024-03-30

我很好奇如何获取 MATLAB(在 Windows 中)调用的外部程序的 PID。

例如,我通过命令调用 MATLAB 中的记事本!记事本.exe or 系统('记事本.exe')。我想在调用此记事本后立即获取它的PID。

由于一台计算机上可能会同时打开多个记事本,因此我需要获取它们各自的 PID(而不是进程名称)来跟踪它们。我不知道如何实施......

寻求帮助,提前致谢!


不需要创建日期

您可以调用Windows'tasklist https://learn.microsoft.com/es-es/windows-server/administration/windows-commands/tasklist来自 Matlab 的命令使用system https://www.mathworks.com/help/matlab/ref/system.html,然后解析结果:

name = 'notepad.exe';
[~, s] = system(['tasklist /FI "imagename eq ' name '"']);
result = regexp(s, ['(?<=' strrep(name, '.', '\.') '\s*)\d+'], 'match');
result = str2double(result); % convert to numbers if needed

的结果system具有以下形式(打开两个记事本窗口;西班牙语 Windows 版本):

>> s
s =
    '
     Nombre de imagen               PID Nombre de sesión Núm. de ses Uso de memor
     ========================= ======== ================ =========== ============
     notepad.exe                  12576 Console                    1    13,488 KB
     notepad.exe                  13860 Console                    1    13,484 KB
    '

因此,正则表达式会搜索程序名称前面的数字和可选空格,以给出最终结果

>> result =
          12576       13860

需要创建日期

如果你需要根据创建日期过滤,您可以使用Windows'wmic https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic:

name = 'notepad.exe';
[~, s] = system(['wmic process where name=''' name ''' get ProcessId, CreationDate']);

这给出了一个字符串,例如

s =
    'CreationDate               ProcessId  
     20191015151243.876221+120  6656       
     20191015151246.092357+120  4004       

     '

The CreationDate在里面format https://learn.microsoft.com/es-es/windows/win32/wmisdk/cim-datetime?redirectedfrom=MSDN yyyymmddHHMMSS+UUU, where +UUU or -UUU是距 UTC 的分钟数。

你可以解析s转换为字符串元胞数组,如下所示:

result = reshape(regexp(s, '[\d+\.]+', 'match').', 2, []).'; % 2 is the number of columns

这给出了

result =
  2×2 cell array
    {'20191015151243.876221+120'}    {'6656'}
    {'20191015151246.092357+120'}    {'4004'}

然后您可以根据第一列进行过滤。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过MATLAB命令获取外部程序(由MATLAB调用)的PID? 的相关文章

随机推荐