Board logo

标题: [已结]关于用tokens取得命令结果中的数据 [打印本页]

作者: rishairu     时间: 2008-10-20 16:34    标题: [已结]关于用tokens取得命令结果中的数据

我写的一个程序中
set process="wmiprvse.exe"
set service_num=1
set argc=0
for %%c in ( %* ) do set /a argc+=1
if not %argc% == 0 goto error0

for /F "usebackq tokens=1" %%a in (`tasklist`) do if "%%c" == %process% set service_num=0

tasklist执行的时候是
System Idle Process            0 Console                 0         28 K
System                         4 Console                 0        260 K
smss.exe                     600 Console                 0        404 K
csrss.exe                    648 Console                 0      6,308 K
winlogon.exe                 676 Console                 0      4,700 K
services.exe                 720 Console                 0      4,544 K
lsass.exe                    732 Console                 0      1,860 K
ati2evxx.exe                 900 Console                 0      4,136 K
svchost.exe                  916 Console                 0      5,216 K
svchost.exe                  988 Console                 0      4,712 K
svchost.exe                 1100 Console                 0     27,628 K
svchost.exe                 1196 Console                 0      3,752 K
svchost.exe                 1296 Console                 0      5,860 K
spoolsv.exe                 1472 Console                 0      5,732 K
atchksrv.exe                1604 Console                 0      2,040 K
wmiprvse.exe                1224 Console                 0      5,868 K

等等信息,我想在想查询%process%是不是在这里面,我把tokens设置成了1,如果%process%在这里存在,则set service_num=0
为什么我的程序最后结果是service_num=1呢

[ Last edited by HAT on 2008-10-20 at 17:39 ]
作者: rishairu     时间: 2008-10-20 16:46
解决了

自己的疏忽,%%a应该是%%c。