- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
bat语法 系统 (重点变量)
脚本语言-BAT
1. 概述
1.1 简介
BAT(批处理文件)就是将一条条命令放在文本里,然后批量执行。
1.2 开发工具
记事本或者EditPlus,但无法调试。虽然有第三方的IDE,也可以调试,但用起来都不顺手。
1.3 其它
?? 打开命令提示符:开始-运行-cmd.exe
?? 配置命令提示符:开始-运行-regedit.exe注册表项HKEY_CURRENT_USER\Console,开启QuickEdit快速编辑
2. 语法
2.1 变量
BAT的世界里一切皆命令,却没有函数的概念,所以和其它语言相比,其对变量使用和处理就比较麻烦。
2.1.1 变量声明和赋值
?? 声明并赋值(字符串)(默认)set /P var=[string]
?? 声明并赋值(数字)set /A expression
?? 查看已定义的变量set [var]
?? 销毁变量set var=
?? 指明变量的作用域整个bat(默认)语句块(setlocal/endlocal)
2.1.2 变量使用
?? 引用单个变量%var%
?? 字符串连接%var%%var%
?? 字符串截取%var:~10,5%,偏移10个字符后,取其后5个字符,类似substring%var:~0,5%,取左边的5个字符,类似left(var,5)%var:~-5%,取右边的5个字符,类似right(var,5)
?? 字符串替换%var:str1=str2%,将变量var中,含有str1的字符替换为str2,类似replace
?? 类似js里的eval(通常用于BAT的代码混淆实现简单的加密)set var=dir%var%
2.1.3 系统变量
?? %DATE%用跟 DATE 命令同样的格式扩展到当前日期。
?? %TIME%用跟 TIME 命令同样的格式扩展到当前时间。
?? %RANDOM% 扩展到 0 和 32767 之间的任意十进制数字。
?? %ERRORLEVEL%扩展到当前 ERRORLEVEL 数值。
?? 环境变量使用set查看
2.2 流程控制
2.2.1 if
?? 判断上一个命令的返回值IF [NOT] ERRORLEVEL number command
?? 判断变量的值(字符串比较)IF [NOT] string1==string2 command
?? 判断变量的值(数字比较)IF %ERRORLEVEL% LEQ 1(EQU:等于、NEQ:不等于、LSS:小于、LEQ:小于或等于、GTR:大于、GEQ:大于或等于)
?? 判断文件是否存在IF [NOT] EXIST filename command
2.2.2 goto
?? 使用goto label
?? 声明:label
2.2.3 pause
暂停批处理执行,并等待用户按任意键后继续
2.2.4 call
调用另一个批处理文件,等子批处理执行完后,返回主批处理并继续执行后续命令(如果不用call而直接调用别的批处理文件,那么将无法返回)。
2.2.5 for
?? 对一个set进行操作(可以是使用通配符后的文件、或指定的列表)(使用空格或逗号分隔)FOR %variable IN (set) DO command [command-parameters]
?? /L选项(使用数字作为种子)FOR /L %variable IN (start,step,end) DO command [command-parameters]
?? /F选项(它能够对字符串进行操作,也能够对命令的返回值进行操作,还可以访问硬盘上的ASCII码文件)FOR /F [options] %variable IN (string) DO command [command-parameters]FOR /F [options] %variable IN (command) DO command [command-parameters] FOR /F [options] %variable IN (file-set) DO command [command-parameters]
在for循环中,当一个变量被多次赋值时,%var%所获取的仅仅是var第一次被赋予的值。要想刷新var的值,就必须首先通过命令setlocal enabledelayedexpansion来开启延迟变量开关,然后用!var!来获取var的值(感叹号!是变量百分号%的强化版)。
2.3 管道重定向
操作符
?? 将命令输出写入到文件或设备(例如打印机)中,而不是写在命令提示符窗口中示例1:echo 写到文件的文字 文件.txt(若文件.txt不存在就创建,若
文档评论(0)