#code=936
//2011hwo1 于 2013-1-29 16:29 发表： 
//请问怎么获取tasklist /nh取得的程序名

ENVI$ &NL=0d 0a
exec* &&msg=!tasklist /nh
//mess. %&msg%
envi &&nms=
FORX *NL &msg,&&one,
{
   LSTR &&nm1=25,%&one%   //tasklist 只显示前25ＵＮＩＣＯＤＥ字符！！！！
   FIND $X=X%&nm1%, exit block //continue, 去掉空行
   ENVI &nms=%&nms%%&NL%%&nm1%
}
MSTR &nms=3,-1,%&nms%
mess. %&nms%

// tasklist /FO LIST 可以得到完整的程序名
exec* &&msg=!cmd /c tasklist /FO LIST|find "图像名    :"  
envi &&nms=
FORX *NL &msg,&&one,
{
   MSTR &&nm1=<3->%&one%  
   ENVI &nms=%&nms%%&NL%%&nm1%
}
MSTR &nms=3,-1,%&nms%
mess. %&nms%

//LOGS *D:\X.LOG
//// FIND --pid*@ 本身有这个功能，显示是完整的  
FIND --pid*@  &&msg
//ENVI &&msg=1 2 3 4 5 C:\WINDOWS\system32\csrss.exe
envi &&nms=
FORX *NL &msg,&&one,
{
   MSTR* &&nm1=<6>%&one%   // FIND --pid 不限长度
   FIND $X=X%&nm1%, exit block //continue, 去掉不显示的文件名，某些系统进程
   NAME -ext &nm1=%&nm1%   //去掉目录，
   ENVI &nms=%&nms%%&NL%%&nm1%
}
MSTR &nms=3,-1,%&nms%
mess. %&nms%