|
原帖由 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 之显示前25UNICODE字符!!!!
FIND $X=X%&nm1%, exit block //continue,去掉空行
ENVI &nms=%&nms%%&NL%%&nm1%
}
MSTR &nms=3,-1,%&nms%
mess. %&nms%
!!!!程序名被截断了。
//// FIND --pid*@ 本身有这个功能,显示是完整的
//代码如下:
FIND --pid*@ &&msg,
envi &&nms=
FORX *NL &msg,&&one,
{
MSTR* &&nm1=<6>%&one% // FIND --pid 不限长度
FIND $X=X%&nm1%, exit block //continue, 去掉不显示的文件名,某些系统进程
LSTR &&tag=4,%&nm1%
FIND $\??\=%&tag%, MSTR &nm1=5,-1,%&nm1%
// NAME -ext &nm1=%&nm1% //去掉目录,见snap3.gif
ENVI &nms=%&nms%%&NL%%&nm1%
}
MSTR &nms=3,-1,%&nms%
mess. %&nms%
snap3.gif:
!!!!程序名完整
[ 本帖最后由 mdyblog 于 2013-1-29 17:49 编辑 ] |
|