Дата создания не требуется
Вы можете вызвать команду Windows * tasklist
из Matlab, используя system
, а затем проанализировать результаты:
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
:
name = 'notepad.exe';
[~, s] = system(['wmic process where name=''' name ''' get ProcessId, CreationDate']);
Это дает строку, такую как
s =
'CreationDate ProcessId
20191015151243.876221+120 6656
20191015151246.092357+120 4004
'
* CreationDate
в формате yyyymmddHHMMSS+UUU
, где +UUU
или -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'}
Затем вы можете фильтровать по первому столбцу n.