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%
管道:
管道使用 &
符号。