|
|
发表于 2011-6-20 16:12:25
|
显示全部楼层
本帖最后由 tmplinshi 于 2011-6-20 17:52 编辑
for /f "tokens=2" %%1 in ('echo') do echo %%1
pause
mxxcgzxxx 发表于 2011-6-20 14:28 
'echo' 会开启一个新的 cmd.exe 进程来输出信息,是通过 cmd.exe /c echo 传递给 for 的。
但是并不等同于 'cmd /c echo',这样系统仍会处理成 cmd.exe cmd /c echo。
------------------------------------------------
不一定要 for 抓取吧?
findstr不就行了?
caruko 发表于 2011-6-20 12:28 
我之前确实没有想到用 findstr。但刚才测试了一下,这样也会启动新的 cmd 进程。
经测试,如果是 echo a | echo b,系统会启动两个 cmd:
cmd.exe /S /D /c" echo a "
cmd.exe /S /D /c" echo b"
------------------------------------------------
以上结论是用 Process Monitor 监测到的。大家可以自己监测一下,打开软件后在“过滤器”里设置只监测 cmd.exe 进程。 |
|