过滤的任务列表管道进入查找不显示控制台输出?

时间:2010-01-22 17:18:49

标签: batch-file console find tasklist

Windows XP专业版

这显示控制台中的输出:

dir | find " free"

这不是:

tasklist | find "Image Name"

tasklist | find /C "Image Name"

将预期的行写入文件:

tasklist | find "Image Name" > foo.txt

是什么导致的?

4 个答案:

答案 0 :(得分:5)

> tasklist | find "Image Name"
Image Name                     PID Session Name        Session#    Mem Usage

无法在这里重现。您的第二个命令行确实按预期工作,这样当第四个命令行将该行写入文件时就不会出现混淆。

在您搜索" free"时,您是否仍然在字符串中有前导空格来搜索上一行?

答案 1 :(得分:3)

如何找到?你试过吗?

C:\test>tasklist  | findstr "Image Name"
Image Name                   PID Session Name     Session#    Mem Usage

答案 2 :(得分:0)

如果/ C标志显示找到了特定的行,那么'find'返回的字符串可能会以某种方式被剥离(或者作为字符串中的特殊字符)并且只显示字符串的结尾?如果要调整命令行窗口的大小,会发生什么?
这是一个修复:
tasklist | find "3184" | sort

答案 3 :(得分:0)

感谢Stack Overflow,我一会儿就学会了the answer to this question。 (显然我应该评论而不是在这里回答,但我还没有代表。)阅读链接,但总结是tasklist.exe的输出有一些非打印垃圾,通过重定向标准错误修复到NUL:tasklist.exe 2>NUL | find "Image Name"