Board logo

标题: for /f 时变量出现奇怪的值 [打印本页]

作者: pillow     时间: 2007-3-13 09:46    标题: for /f 时变量出现奇怪的值

指令如下:
for /F "tokens=1,2" %i in ('tasklist /svc /fi "services eq TermService"') do echo %j

比如在某台电脑上执行,应该得到的值是932,但不知道为什么,执行结果如下:
echo PID
PID

echo ======
======

echo 932
932
我想请教的是,为什么会多出来下面这两行?
echo PID
PID

echo ======
======
作者: zhoushijay     时间: 2007-3-13 09:51
tasklist /svc /fi "services eq TermService
能把这句的运行结果说一下吗  我电脑上显示不出来
作者: lxmxn     时间: 2007-3-13 09:56
  修改一下命令即可得到PID的值:
for /F "tokens=1,2" %i in ('tasklist /svc /nh /fi "services eq TermService"^|findstr ".*\.exe"') do @echo %j

作者: pillow     时间: 2007-3-13 10:04
To zhoushijay,

这个大概是只有XP才能运行的,PID值往往都会不同,我想得到的结果就只是那个PID的值而已.

tasklist /svc /fi "services eq TermService"


图像名                       PID 服务
========================= ====== =============================================
svchost.exe                  932 DcomLaunch, TermService


To lxmxn,
非常感谢~~才想清楚,原来是对结果中的三行都找了第二列,加了/nh参数,就去掉前两行而只留下第三行,所以多余的东西也不再有了.
作者: leoson88     时间: 2007-3-14 00:15
/NH                     指定栏标头不应该在
                          输出中显示。
                          只对 "TABLE" 和 "CSV" 格式有效。

以前都没注意到,谢谢提了个醒~~
作者: z310394543     时间: 2007-10-29 23:08


  Quote:
Originally posted by lxmxn at 2007-3-13 09:56 AM:
  修改一下命令即可得到PID的值:[code]
for /F "tokens=1,2" %i in ('tasklist /svc /nh /fi "services eq TermService"^|findstr ".*\.exe" ...

我想知道里面的 /scv /nh /fi "services eq TermService" 是怎么回事
作者: fastslz     时间: 2007-10-29 23:55

for /F "eol== skip=2 tokens=1,2" %i in ('tasklist /svc /fi "services eq TermService"') do echo %j