第二讲:变量定义

批处理中变量的定义。

变量:在程序的运行过程中随时可以发生变化的量。好像是这么定义的,

在批处理中,变量的定义一般用以下set命令来设置。
set 显示、设置或删除 cmd.exe 环境变量。
set设置变量的基本形式:set [变量名]=[变量值]

在cmd中如果直接输入set,则会显示系统的环境变量,而且这些变量都不需要设置可以直接使用,如要直接显示某一字符开头的变量可使用set 字符,
例如:

@echo off
rem 显示所有以字母a开头的变量
set a
pause

 使用set设置变量是批处理中一个重要的部分,一定好好把握
set设置的变量可以用双%括起来使用,如果要取消之前变量直接  
set 变量名=

@echo off
rem 设置变量var的值为"批处理"
set var=批处理
rem 显示变量var的值
echo %var%
rem 取消var变量
set var=

如设置的变量值含有空格最好用双引号括起如:set "var=好样的  人"

注意:set 命令不允许变量名含有等号。所以想变量名存在等号是不行若无事

@echo off
rem 尝试设置变量名"a="的值为test
set a==test
rem 显示的是空行,不存在变量a=
echo.%a=%
rem 变量值为"=test"
echo %a%
pause

set 的参数说明
/a 常用以计算数值,对于计算的符号可查看帮助
a参数除了可以用来计算之外也可进行多个变量赋值,以逗号为分隔符
set /a a=21,b=32,c=64

注意:a参数是用作计算赋值,所以变量值一定是数值,如果变量值是字母或符号则值为0

@echo off
rem 设置多个变量,变量值为汉字
set /a a=批,b=处,c=理
rem 值为0
echo %a%
echo %b%
echo %c%
pause

/P 命令行开关允许将变量数值设成用户输入的一行输入
p参数是批中的跟用户的交互输入命令,可以设置一些提示如:

@echo off
rem 提示输入网址,批会暂停执行等待用户输入
set /p var=请输入网址:
rem "提示"不作变量的值,var的值为用户输入的
echo %var%
pause

看到这个你会发现echo 跟set /p 都可以显示信息到cmd窗口,那么有没有方法令set /p 实现显示不等待用户输入?

set /p 跟符号"<"符号的应用,
<  将其后面的内容作为其前面命令的输入,可以应用在赋值文件内容,
当符号"<"跟在set /p 等号后面时,不会再需要用户等待输入,比较常用的有

@echo off
rem 将a.txt第一行的内容赋值比变量a,并不等待用户输入
set /p a=<a.txt
rem var值为空字符,并显示提示,不等待用户输入
set /p var=test<nul
pause

上面的例子可以发现最后显示的是"test请按任意键继续...",
因为"<"将后面的换行符(行的最后都会有一个换行符,看不见的)当作前面命令的输入了,换行符没了,所以相当于"续行" 。

@echo off
rem 因为是只是要显示提示,所以变量名可不写
set /p=换<nul
set /p=行<nul
set /p=符<nul
rem echo.相当于换了一行(回车)
echo.
pause

猜你喜欢

转载自yshlin.iteye.com/blog/1738010