中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]每一个FOR循环都会调用一个CMD.exe?
作者:
标题: [求助]每一个FOR循环都会调用一个CMD.exe? 上一主题 | 下一主题
qinbuer
高级用户

我思故我在


积分 512
发帖 228
注册 2007-1-21
状态 离线
『楼 主』:  [求助]每一个FOR循环都会调用一个CMD.exe?

环境:WINDOWS XP SP2

案例1:

@echo off
for /f "delims=" %%i in ('tasklist /nh') do echo %%i
pause

结果发现:两个CMD.EXE进程

案例2:

@echo off
tasklist /nh
pause

结果发现:一个CMD.EXE进程

为什么会出现这样的情况呢?难道每一个FOR循环都需要调用一个CMD.exe,当循环过后调用的进程就会立即退出?

[ Last edited by qinbuer on 2007-9-12 at 02:54 AM ]



我确实是只菜鸟,而且这里X人太多,所以我不敢装X。谁要再说我装X,我就XXOO他。
2007-9-12 02:44
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ThinKing
中级用户





积分 471
发帖 207
注册 2007-5-3
状态 离线
『第 2 楼』:  

这和for没有什么关系,请详细说明你的测试步骤。

我的第一个例子的结果为一个cmd.exe进程。

2007-9-12 10:04
查看资料  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 3 楼』:  

任务管理器里是只有一个的。

@echo off
for /f "delims=" %%i in ('tasklist /nh') do echo %%i
pause

list出来的列表里有两个cmd

2007-9-12 10:50
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ThinKing
中级用户





积分 471
发帖 207
注册 2007-5-3
状态 离线
『第 4 楼』:  

我是这样猜想的:如果for带上/f参数,并且括号里面也是单引号括起来的命令,那么for会启动一个子cmd.exe进程来运行括号里面的命令,因此有了两个cmd.exe进程。

这里只有一个。
@echo off
for /f %%a in ("tasklist /nh") do %%a
pause


   此帖被 +8 点积分        点击查看详情   
评分人:【 qinbuer 分数: +4  时间:2007-9-13 12:01
评分人:【 knoppix7 分数: +4  时间:2007-9-16 13:16


2007-9-12 11:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
qinbuer
高级用户

我思故我在


积分 512
发帖 228
注册 2007-1-21
状态 离线
『第 5 楼』:  

我本人没有技术进行再深入的测试,ThinKing兄的回答似乎是最好的解释了。加分表示谢意。



我确实是只菜鸟,而且这里X人太多,所以我不敢装X。谁要再说我装X,我就XXOO他。
2007-9-13 12:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 6 楼』:  

willsort兄就此做过解释
翻翻以前的帖子应该找的到
for循环启动的那个cmd.exe跟普通的不太一样

2007-9-16 13:11
查看资料  发短消息 网志   编辑帖子  回复  引用回复
titiger
初级用户





积分 30
发帖 15
注册 2007-9-5
状态 离线
『第 7 楼』:  

收获了,呵呵

2007-9-17 09:59
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: