| 
 | 
8#
 
 
 楼主 |
发表于 2008-8-13 13:40:16
|
只看该作者
 
 
 
在这里有于时间原因,先仅对1楼帖子作个简单的注释讲解,希望能对DOS爱好者有所帮助- @echo off
 
 - color fc
 
 - setlocal enabledelayedexpansion
 
 - set str=一二三四五 上山打老虎 老虎打不到 打到小松鼠 松鼠有几个 让我数一数  数来又数去 
 
  
- 五四三二一 一二三四五
 
 - for %%i in (%str%) do (
 
 - echo %%i&echo.&ping -n 2 127.1>nul
 
 - )
 
 - pause>nul
 
  复制代码 @echo off 
:: 注释 这句不用注释了吧,关闭CMD命令回显,@是不显示echo off本句,因为echo off并不能关闭 
 
自身. 
 
color fc 
:: 注释 这句是指定控制台输出的颜色属性,第一个F为背景色为亮白色,第二个C为前景色为淡红色 
 
setlocal enabledelayedexpansion 
:: 注释 这句是开启变量延迟,在本例中可以省略不用,不影响效果. 
 
set str=一二三四五 上山打老虎 老虎打不到 打到小松鼠 松鼠有几个 让我数一数  数来又数去  
 
五四三二一 一二三四五 
:: 注释 这句是把一二三四五 上山打老虎......这几45个字符串赋予str,注意中间有空格   
 
        隔开的 
 
       最麻烦是下面这句FOR,先要全局看一下,从FOR开始,到DO以后被圆括号括起来的,作为一个动作来处理 
 
      ,我们可以理解为是一段话,只不过里面有多个语句组成的.为了便于大家理解,在这里把他整句分开几部分来讲.DO前IN后,FOR后, DO后,三个部分 
 
for %%i in (%str%) do ( 
:: 注释 这句是从DO前IN 后圆括号读取变量%str%的值,前面我们已经赋予STR=一二三四五 上山打  
 
           老虎......"45个字符串了,也就是说%str%就是这45个字符串"一二三四五 上山打 
 
           虎......",因为中间用空格隔开了,所以就分先后读取,先读取第一个空格前的第一句,也就是"一二 
 
          三四五"了,并传递给前面的FOR赋予%%i,到此时%%i变成了"一二三四五"再送给后面DO来执行. 
 
echo %%i&echo.&ping -n 2 127.1>nul 
) 
:: 注释 这句前面已经讲到FOR已经赋予%%i为"一二三四五"了,那么就是并ECHO出来,也就是并把%%i显示出来,那么ECHO执行 
 
结果就是在CMD窗口信息显示出"一二三四五"了,&echo.这句里&是一个组合命令符,显示前面结果之后,再执行&以后的命令,ECH 
 
O.就换行的意思,&ping -n 2 127.1>nul)这句里-n是PING的参数,请求发出的信息得到响应, 2为PING的次数,127.1就是12 
 
7.0.0.1的缩写法,PING本机,>nul 就是把PING出的结果重定向到一个空设备上,意思就是不要在CMD窗口显示.PING这一整句用到 
 
这里整句意思就是在前面显示%%i结果后,停留两秒钟的时间(一个大致时间),如果PING的次数为3,就是显示%%i,此时为"一 
 
二三四五"了,显示3秒钟的时间,后面还有一个反圆括号,到此时第一个循环结束,再第二次循环开始,读取%str%字符串第 
 
二部分即第一个空格右边部分到第二空格之间"上山打老虎"这五个字,传递给FOR赋予%%i,此时%%i就变为"上山打老虎"了, 
 
不再是"一二三四五"了,再送给DO来执行,ECHO显示出来停留2秒的时间,再开始第三次循环......直到读取最后一句也是"一二 
 
三四五",并不是第一句的"一二三四五",要区分开来,送给DO执行显示出来停留2秒时间到后面一个反括号,至此FOR整个递 
 
归循环过程结束,(反圆括号和前面的正圆括号是配合使用的不能缺少,否则批处理出错不能执行)继续执行最后反圆括号后面的命令 
 
pause>nul 
:: 注释 这句最简单,大家都知道pause是暂停的意思,用在句尾这里是让批处理执行完停留下来,让大家能够看得更加清楚,用>NUL就是不让请按任意键退出显示在窗口上,看起来让批处理执行窗口干净整齐一些. 
                                                                                                                                                      bbs.wuyou.net 
                                                                                                                                                    haiou327&YY写写 
                                                                                     2008年08月13日中午 
 
 
好了,就到这里吧,有错误纰漏之处请指正,希望能对DOS爱好者有所帮助! 
 
                               
                                                                                     
 
 
如再不清楚之处请移步 
无忧论坛CMD高级教程帖 
 
[ 本帖最后由 haiou327 于 2008-8-14 12:00 编辑 ] |   
 
 
 
 |