程序是同一个,传不同的参数运行了多个,例如程序叫A:
A 101
A 102
A 103
这样启动了3个进程,我想kill掉参数=103的如何处理?
tasklist命令看不到参数,wmic process get caption,commandline能看到参数看不到进程号,
Process[] p = Process.GetProcessesByName("A");
p[0].StartInfo.Arguments居然是空的
这在unix下一条命令就能搞定的事,服了
------解决思路----------------------
命令行 wmic process get processid,caption,commandline 就能看到pid了。同样的c#使用wmi也可以(需要添加对System.Management的引用),例如:
var query = "SELECT ProcessId, Caption, CommandLine FROM Win32_Process";
var searcher = new ManagementObjectSearcher(query);
foreach (ManagementObject mo in searcher.Get())
{
Console.WriteLine("PID={0}, Caption={1}, CommandLine={2}", mo["ProcessId"], mo["Caption"], mo["CommandLine"]);
}