经典批处理分析(一)

来源:互联网 发布:魔方软件怎么样 编辑:程序博客网 时间:2024/05/21 23:46
 
  1. @echo off
  2. :: 把下一行的数字复制到前面一行的后面,并用空格分开
  3. setlocal enabledelayedexpansion
  4. for /f %%i in (test.txt) do (
  5.     set /a count+=1
  6.     set first=!second!
  7.     set second=%%i
  8.     if !count! gtr 1 echo !first! !second!
  9. )
  10. pause
确切地说,它实现的功能是后行到前一行的添加。这里使用到了变量延迟。因为批处理命令运行是按行读取的,如果遇到for命运,其后用一对圆括号闭合的所有语句也当作一行。在处理之前要完成必要的预处理工作,这就是对该命令中的变量进行赋值。在此句之前,运行时并不知道count、first和second变量的值,所以会出错。解决方法当然就是开始变量延迟机制。以下还有几点可以学习:
  1. 在这里命令for在解析文件时,省略了对变量的描述。默认的是"tokens=*"。
  2. set /a expression :/a 命令开关指定set命令计算expression表达式。
  3. if命令里使用了比较运算符gtr(greater than)
That's all! 举个例子:test.txt文件中假设有
经典批处理
分析
两行字符串,那所得的结果是:经典批处理 分析
cheers! that is funny.
如果我不满意,我想想偶数行的加到奇数行上去,那
  1. @echo off
  2. ::append even line to odd line
  3. setlocal enabledelayedexpansion
  4. for /f %%i in (test.txt) do (
  5.     set /a count+=1
  6.     set first=!second!
  7.     set second=%%i
  8.     set /a mod=!count!%%2
  9.     if !mod! equ 0 echo !first! !second!
  10. )
  11. pause
注意,模运算在批处理文件中是需要使用两个%%,在使命行中使用一个。
经常进行拓展训练,能让你体会的更多,不是么?