2010-11-22 星期一
批处理知识小结:
批处理参考网站:
http://www.bathome.net/
set 命令的使用:
set // 显示所有的环境变量
set /a expression
set /p string1=[string2] //string2 是提示字符,用户可以输入字符赋值给string1, 注意,string1 并不是接受string2 这些提示字符。
例如:set /p userName=pls input user name // “pls input user name ”这段文字信息可以在dos 窗口中看到,”但是userName 的内部不是这个,
// 而是用户输入的信息。
如何给变量赋值方法:
1: set variable=abc
2: set var1=abc
set var2=%var1%
3: set /p=
字符截取方法:
%variable:~[+/-]M[,N]% // 表示截取变量从前或后从第M 个位置开始截取,截取长度为N
例如:
set var=123456
echo %var:~0,2% // 从第一个位置开始截取, 截取长度12
变量使用:
变量的使用方式有两种 %var%, !var!.
!var! 是变量延迟扩展,要开启延迟变量扩展要使用如下命令,否则将不能解析!var!
setlocal enabledelayedexpansion // 具体参见setlocal 命令
%var% 总是显示进入语句块前的值。
!var% 显示的是每次更新后的值。
例如:遍历parameters.txt 文件每一行,并将其信息输出。
parameters.txt 文件内容:
-n doom #
-t 7 #
-p d:/android/game #
-k android.game #
-a doomActivity #
@echo off
rem setlocal enabledelayedexpansion
rem set y=abc
for /f "tokens=1,2,* delims=#" %%i in (parameters.txt) do (set y=%%i) & echo %y%
如果没有开启 “延迟变量扩展”,我们也不在进入语句块前给 y 变量赋值,y 变量默认是为空。
这时候,我们第一次运行,就会打印出 “echo 处于关闭状态” 信息。
这是如果我们在进入语句块之前,我们给 y 变量赋值一个随机值,而不是默认的空值。如 set y=abc.
这时候我们再次运行,会发现打印出来的信息就是五行 abc. 也就是我们进入语句块的前的值,但是这个
值其实是改变了得,我们可以通过 set 命令看到,y 的值其实是我们w 文本文件的最后一行去掉# 的信息。
y=-a doomActivity
所以从默认到人为给变量添加值两者情况可以看出。%var% 显示的就是进入语句块前的值。接下来我们再来看看
!var! 的使用。
首先启动 “延迟变量扩展”,然后使用 !y!, 会发现打印的信息是每次读取到的行信息。
打印空行的方法:
echo.
dos 窗口出现 “echo 处于关闭状态” 信息,如何关闭。
如果 echo %var% 语句中,var 是一个空值,那么就会出现这个信息。关闭很简单就是在echo 后加上一个“. ”即可。
即:echo. %var%
管道:
管道使用 & 符号。