中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » cmd如何跳转到for命令。。3742668版主请进。
作者:
标题: cmd如何跳转到for命令。。3742668版主请进。 上一主题 | 下一主题
zrz000
初级用户





积分 44
发帖 16
注册 2006-8-15
状态 离线
『楼 主』:  cmd如何跳转到for命令。。3742668版主请进。 使用 LLM 解释/回答一下

我试一个批处理。本意是想解决系统关于“内存??不能???‘的问题。如下:


1.@echo off
2.start cmd
3.pause

4.for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
5.echo.


运行了以后只能出现命令提示符下面就不执行了。。。。请帮修改一下。


2006-8-17 07:24
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 2 楼』:   使用 LLM 解释/回答一下

使用cmd /c连接吧.
不过有这个必要吗?为什么非得start cmd呢?
把这一行去掉不行吗?




QQ:366840202
http://chenall.net
2006-8-17 08:18
查看资料  发送邮件  访问主页  发短消息  网志  OICQ (366840202)  编辑帖子  回复  引用回复
zrz000
初级用户





积分 44
发帖 16
注册 2006-8-15
状态 离线
『第 3 楼』:   使用 LLM 解释/回答一下

删除了不能执行的。奇怪的/


2006-8-17 08:39
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 4 楼』:   使用 LLM 解释/回答一下

  第三行的pause有存在的必要吗?




尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-8-17 08:46
查看资料  发短消息  网志   编辑帖子  回复  引用回复
bagpipe
银牌会员

DOS联盟捡破烂的


积分 1144
发帖 425
注册 2005-10-20
来自 北京
状态 离线
『第 5 楼』:   使用 LLM 解释/回答一下

这个批文件有用吗?我倒是没有什么感觉........;)


2006-8-17 09:09
查看资料  发送邮件  访问主页  发短消息  网志   编辑帖子  回复  引用回复
zrz000
初级用户





积分 44
发帖 16
注册 2006-8-15
状态 离线
『第 6 楼』:   使用 LLM 解释/回答一下

问题不是有用没有用。而是能不能从cmd跳到for然后执行。楼上两位说的都是无关紧要的。。。。


2006-8-17 09:41
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
zrz000
初级用户





积分 44
发帖 16
注册 2006-8-15
状态 离线
『第 7 楼』:  bagpipe 兄弟进---你说cmd如何转到for?? 使用 LLM 解释/回答一下

bagpipe 兄弟,知道你是一个高手。请你说一下我发的帖子里的批处理如何处理,就是那个cmd跳到for命令执行????

这个破烂你捡定了,,哈。。。。。。。。。。


2006-8-17 09:53
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
无奈何
荣誉版主





积分 1338
发帖 356
注册 2005-7-15
状态 离线
『第 8 楼』:   使用 LLM 解释/回答一下

RE zrz000
你要的是不是这种效果:

start cmd /c "(for %i in (%windir%\system32\*.dll) do @echo %i) &pause"
无奈何发表于 2006-08-17 09:52


在批处理中用下面的代码:


  1. @echo off
  2. start cmd /c "(for %%i in (%%windir%%\system32\*.dll) do @echo %%i) &pause"
无奈何发表于 2006-08-17 09:54




  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

2006-8-17 10:03
查看资料  发送邮件  发短消息  网志  OICQ (105400208)  编辑帖子  回复  引用回复
无奈何
荣誉版主





积分 1338
发帖 356
注册 2005-7-15
状态 离线
『第 9 楼』:   使用 LLM 解释/回答一下

┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓
┃▓ 中国DOS联盟 >> 批处理室版务管理 _ □ ×┃
┠─────────────────────────────┬┨
┃Microsoft Windows XP │┃
┃(C) 版权所有 1985-2001 Microsoft Corp. │┃
┃ │┃
┃C:\无奈何>版务管理.cmd │┃
┃start ... │┃
┃操作:合并主题 {22667}bagpipe 兄弟进-你说cmd如何转到for? │┃
┃说明:操作主题与本主题内容重复 │┃
┃提示:请不要发重复相同内容的主题 │┃
┃处罚:鉴于 zrz000 是新人不做处罚 │┃
┃ │┃
┃ │┃
┃ │┃
┃ │┃
┃C:\无奈何>▂ │┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┷┛




  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

2006-8-17 10:28
查看资料  发送邮件  发短消息  网志  OICQ (105400208)  编辑帖子  回复  引用回复
zrz000
初级用户





积分 44
发帖 16
注册 2006-8-15
状态 离线
『第 10 楼』:   使用 LLM 解释/回答一下

Originally posted by 无奈何 at 2006-8-17 10:03:
RE zrz000
你要的是不是这种效果:


在批处理中用下面的代码:




真心感谢。


2006-8-17 10:31
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
zrz444
新手上路





积分 16
发帖 6
注册 2006-8-14
状态 离线
『第 11 楼』:   使用 LLM 解释/回答一下

运行了以后可以执行了..谢谢 .无奈何版主.能解释一下.为什么我的就不能执行.你的却能呢?好人做到底啊.
start cmd /c for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1
start cmd /c "(for %i in (%windir%\system32\*.dll) do @echo %i) &pause"

我批处理才学习三天哪.不懂的...乱来来的../


2006-8-17 10:49
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
bagpipe
银牌会员

DOS联盟捡破烂的


积分 1144
发帖 425
注册 2005-10-20
来自 北京
状态 离线
『第 12 楼』:   使用 LLM 解释/回答一下

其实要我说用不着START命令,直接
cmd /c "(for %i in (%windir%\system32\*.dll) do @echo %i) &pause" 或者
cmd /c ((for %i in (%windir%\system32\*.dll) do @echo %i) &pause)就可以了,至于你的代码

@echo off
start cmd
pause

for %%1 in (%windir%\system32\*.dll) do echo %%1
是可以执行成功的,只不过你用start cmd 启动了另外一个CMD的SHELL,而你
for %%1 in (%windir%\system32\*.dll) do echo %%1这句是运行在原来的CMD的SHELL中,之所以无奈何版主的代码:
start cmd /c "(for %%i in (%%windir%%\system32\*.dll) do @echo %%i) &pause"
可以,是因为后面的执行的语句是作为你新SHELL的参数来执行的,DO YOU UNDERSTAND ???


2006-8-17 11:05
查看资料  发送邮件  访问主页  发短消息  网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 13 楼』:   使用 LLM 解释/回答一下

  无奈何9楼的帖子很酷,如果连论坛管理都可以用批处理来弄的话,那真是太强了。
弱弱地问一句:真的有这样的批处理吗?记得willsort曾经说过他是用模块在管理论坛的。

Last edited by namejm on 2006-8-17 at 13:01 ]




尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-8-17 11:26
查看资料  发短消息  网志   编辑帖子  回复  引用回复
zrz000
初级用户





积分 44
发帖 16
注册 2006-8-15
状态 离线
『第 14 楼』:   使用 LLM 解释/回答一下

YES SIR .I UNDERSTAND! THANK YOU!!


2006-8-17 11:57
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复
无奈何
荣誉版主





积分 1338
发帖 356
注册 2005-7-15
状态 离线
『第 15 楼』:   使用 LLM 解释/回答一下

RE zrz000 444
bagpipe 兄的解释已经很清楚了,我猜想你的目的是想弹出一个CMD窗口来显示执行信息。你将echo %%i 替换为你的执行语句就可以了。
RE namejm
这是我正在构思的一个脚本,借助 gawk 在技术上没有太大问题,现在我在考虑怎么增加一些默认选项尽可能的方便、怎么接收输入操作量更小、怎么才能适应多种不同操作等一些细节问题。具体什么时候出来成品看我时间的宽裕程度。兄有兴趣也可以尝试完成一下,要想完善的话需要花一些心思,有点挑战性的。




  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

2006-8-17 12:29
查看资料  发送邮件  发短消息  网志  OICQ (105400208)  编辑帖子  回复  引用回复

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


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



论坛跳转: