视窗 XP 专业版
这在控制台中显示输出:
dir | find " free"
这不会:
tasklist | find "Image Name"
这样做:
tasklist | find /C "Image Name"
这确实将预期的行写入文件:
tasklist | find "Image Name" > foo.txt
是什么原因造成的?
视窗 XP 专业版
这在控制台中显示输出:
dir | find " free"
这不会:
tasklist | find "Image Name"
这样做:
tasklist | find /C "Image Name"
这确实将预期的行写入文件:
tasklist | find "Image Name" > foo.txt
是什么原因造成的?
> tasklist | find "Image Name"
Image Name PID Session Name Session# Mem Usage
在这里无法重现。您的第二个命令行确实按预期工作,这样当第四个命令行将该行写入文件时不会出现混淆。
当您搜索 时,您是否仍有字符串中的前导空格要从上一行搜索" free"
?
findstr 呢?你有没有尝试过?
C:\test>tasklist | findstr "Image Name"
Image Name PID Session Name Session# Mem Usage
多亏了 Stack Overflow,我不久前才知道了这个问题的答案。(显然我应该在这里评论而不是回答,但我还没有代表。)阅读链接,但总结是 tasklist.exe 的输出有一些通过重定向标准错误修复的非打印垃圾到 NUL:tasklist.exe 2>NUL | find "Image Name"
如果 /C 标志显示找到了特定的行,那么“find”返回的字符串可能以某种方式被剥离(或者作为字符串中的特殊字符)并且只显示字符串的结尾?如果你调整命令行窗口的大小会发生什么?
这是一个修复:
tasklist | find "3184" | sort