windows - Hvad svarer PS-kommandoen i Perl?

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg bruger ps -C <executable name> på Linux, men det samme virker ikke på Windows.


Hvordan kan jeg udføre den samme check i Perl, så den er platformafhængig?

Bedste reference


Du kan muligvis bruge Win32 :: Process :: List [3]


use 5.12.0;
use warnings;
use Win32::Process::List;

my $P = Win32::Process::List->new();
if($P->IsError == 1) {
    die $P->GetErrorText;
}

my \%list = $P->GetProcesses();
foreach my $key (keys \%list) {
    # $list{$key} = process name, $key=PID
    say sprintf("\%25s \%10s", $list{$key}, $key);
}


Og behandle hensigtsmæssigt.