赋值
1.字符串赋值
set var = hello world!
如果变量两侧加上百分号%用来表示该变量的值,用来计算显示等处理。
2.数值赋值
在set后面加上/a的参数可以给变量赋予数值型的值
set /a var = 48
3.获取输入的值
在set后面加上/p的参数,可以将变量设成用户输入,读取输入之前,显示指定的提示文字。
set /p var=请输入:
上面示例可以显示一段提示文字“请输入:”并能将用户输入信息保存到变量var里。
4.%的作用
- 表示变量的值。
- 对变量中的字符串进行编辑或变换
- 对变量中的字符进行替换
set var=12345678 echo %var% ----12345678 ----显示所有 echo %var:~4% ----5678 ----从第4个字符以后开始显示 echo %var:~4,3% ----567 ----从第4个字符以后开始显示,并只显示前3个 echo %var:~-4% ----5678 ----从倒数第4个字符开始显示 echo %var:~4,-2% ----56 ----从第4个字符以后开始显示,显示到还剩2个为止 echo %var:~0,3% ----123 ----从头开始显示,并只显示前3个字符 echo %var:~0,-3% ----12345 ----从头开始显示,显示到还剩3个字符为止
调用
1.跳转 goto
goto跟上标签可以让程序从标签开始继续执行随后的命令,不论标签的位置是在该goto命令的前面还是后面。标签必须以单个冒号:开头,但不区分大小写。 :EOF或:eof标签不需要事先定义,能够控制转移到当前批处理脚本文件的结尾处。
@echo off
goto :FirstLable
:SecondLable
echo 然后显示这句
pause
goto :EOF
:FirstLable
echo 首先显示这句
pause
goto :SecondLable
pause
2.调用 call
- 调用该批处理之外的另一个批处理
- 有着与goto类似的向特定标签跳转的功能
- 在调用批处理或标签后的内容处理完成之后,控制会继续执行call后面的语句。
@echo off
call :FirstLable
:SecondLable
echo 然后显示这句
pause
goto :EOF
:FirstLable
echo 首先显示这句
pause
::goto :SecondLable
:::::::::::::::::::::::::
在用call跳转到:FirstLable处执行到程序结尾后(此时call的任务才刚刚完成),会继续回到call语句后的:SecondLable处。假如goto :SecondLable这一句没有被注释掉的话,那么控制会跳转到:SecondLable处直到goto :EOF处,call使命才真正完成。而且,call在完成任务后,下面的:SecondLable处内容会再次执行一遍。
当call作为调用其他新的批处理的用途时,当前批处理就会暂停,直到新的批处理结束后,之前的批处理才会继续执行。
3.启动
- start后面加上标题,再跟上想要执行程序、命令或网址即可。
- start可以打开另一个批处理,与call类似,不同的是start调用另一个批处理,之前的批处理会同时继续执行。
扩展
:::::::::::::::163邮箱登录器.bat:::::::::::::::::::::::::
@echo off
::不显示命令行
mode con cols=32 lines=8
::设置窗口的尺寸
title 163邮箱登录器
::设置该批处理的标题
color 3a
::设置背景和文字颜色,color /?可获取详细颜色信息
set /p username=账号:
sel /p password=密码:
::给出输入提示,并赋值给相应变量
start "正在登录邮箱" "https://reg.163.com/logins.jsp?username=%username%&password=%password%&url=http://fm163.163.com/coremail/fcg/ntesdoor2"
::::::::::::::::::::::::::::::::::::::::::::::::::::::::