Board logo

标题: cmd如何跳转到for命令。。3742668版主请进。 [打印本页]

作者: zrz000     时间: 2006-8-17 07:24    标题: cmd如何跳转到for命令。。3742668版主请进。

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


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

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


  运行了以后只能出现命令提示符下面就不执行了。。。。请帮修改一下。
作者: chenall     时间: 2006-8-17 08:18
使用cmd /c连接吧.
不过有这个必要吗?为什么非得start cmd呢?
把这一行去掉不行吗?
作者: zrz000     时间: 2006-8-17 08:39
删除了不能执行的。奇怪的/
作者: namejm     时间: 2006-8-17 08:46
  第三行的pause有存在的必要吗?
作者: bagpipe     时间: 2006-8-17 09:09
这个批文件有用吗?我倒是没有什么感觉........;)
作者: zrz000     时间: 2006-8-17 09:41
问题不是有用没有用。而是能不能从cmd跳到for然后执行。楼上两位说的都是无关紧要的。。。。
作者: zrz000     时间: 2006-8-17 09:53    标题: bagpipe 兄弟进---你说cmd如何转到for??

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

   这个破烂你捡定了,,哈。。。。。。。。。。
作者: 无奈何     时间: 2006-8-17 10:03
RE  zrz000
你要的是不是这种效果:

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

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

  Quote:

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


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

作者: zrz000     时间: 2006-8-17 10:31


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


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

真心感谢。
作者: zrz444     时间: 2006-8-17 10:49
运行了以后可以执行了..谢谢 .无奈何版主.能解释一下.为什么我的就不能执行.你的却能呢?好人做到底啊.
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"

  我批处理才学习三天哪.不懂的...乱来来的../
作者: bagpipe     时间: 2006-8-17 11:05
其实要我说用不着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 ???
作者: namejm     时间: 2006-8-17 11:26
  无奈何9楼的帖子很酷,如果连论坛管理都可以用批处理来弄的话,那真是太强了。
      弱弱地问一句:真的有这样的批处理吗?记得willsort曾经说过他是用模块在管理论坛的。

[ Last edited by namejm on 2006-8-17 at 13:01 ]
作者: zrz000     时间: 2006-8-17 11:57
YES SIR .I UNDERSTAND! THANK YOU!!
作者: 无奈何     时间: 2006-8-17 12:29
RE zrz000 444
        bagpipe 兄的解释已经很清楚了,我猜想你的目的是想弹出一个CMD窗口来显示执行信息。你将echo %%i 替换为你的执行语句就可以了。
RE namejm
        这是我正在构思的一个脚本,借助 gawk 在技术上没有太大问题,现在我在考虑怎么增加一些默认选项尽可能的方便、怎么接收输入操作量更小、怎么才能适应多种不同操作等一些细节问题。具体什么时候出来成品看我时间的宽裕程度。兄有兴趣也可以尝试完成一下,要想完善的话需要花一些心思,有点挑战性的。
作者: zrz000     时间: 2006-8-17 13:18
感谢无奈何和bagpipe的热心解答:
不过新问题又来了.执行后出来的效果是:regsvr32.exe /s %1
而不是我要的效果:regsvr32.exe  c\winnt\wystem\*.dll

这怎么办呢?批处理我才学习了三天.问题很多都是你们看进来可笑的..是不是?
但我想每个人都要经过我这个阶段的.不耻下问才能学到真学问.
作者: 无奈何     时间: 2006-8-17 14:48
RE zrz000
用下面的代码,会显示成功注册的文件。在脚本中需要将 %i 替换为 %%i。新手不要紧多看看帮助。

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


作者: electronixtar     时间: 2006-8-17 16:16
无奈何 斑竹的帖子太 kool 了~赞一个
作者: bagpipe     时间: 2006-8-17 17:16
唉,我最近在坛子里怎么没有看到马呢?估计让人给拍死了,也许是吧,呵呵,偷笑中ing.... .....
作者: namejm     时间: 2006-8-18 16:00


  Quote:
Originally posted by 无奈何 at 2006-8-17 12:29:
RE namejm
        这是我正在构思的一个脚本,借助 gawk 在技术上没有太大问题,现在我在考虑怎么增加一些默认选项尽可能的方便、怎么接收输入操作量更小、怎么才能适应多种不同操作等一些细节问题。具体什么时候出来成品看我时间的宽裕程度。兄有兴趣也可以尝试完成一下,要想完善的话需要花一些心思,有点挑战性的。

  gawk是个dos软件吗?没接触过呢。论坛里的下载栏目找不到了,有点郁闷。