批处理文件(BAT文件)是DOS,OS/2和Microsoft Windows中的一种脚本文件[1]。 它由命令行解释器执行的一系列命令组成,存储在纯文本文件中,通常以BAT为扩展名。批处理文件可以包含解释器交互接受的任何命令,并使用在批处理文件中启用条件分支和循环的构造,如IF,FOR和GOTO标签。在Windows平台自动化部署或处理日常重复性工作时,常使用Windows批处理文件。
批处理命令简介
下面简单介绍Windows BAT文件的语法。
变量操作
- 设置变量
格式:set 变量名=变量值
详细:被设定的变量以%变量名%引用
取消变量
格式:set 变量名=
详细:取消后的变量若被引用%变量名%将为空展示变量
格式:set 变量名
详细:展示以变量名开头的所有变量的值列出所有可用的变量
格式:set
常用命令
- @
让执行窗口中不显示它后面这一行的命令本身。
1 | // 使用@将不显示后面的echo off命令 |
- echo
echo即回显或反馈的意思。它由两种状态:打开和关闭。
1 | // 将不显示后续的命令 |
- ::
注释命令。在批处理文件中与rem命令等效
- call
call命令用来从一个批处理文件调用另一个批处理文件。只有当被调用的批处理文件执行完成时,才返回。
1 | call pm2-startup install |
- start
启动单独的“命令提示符”窗口来运行指定程序或命令。如果在没有参数的情况下使用,start 将打开第二个命令提示符窗口。
- pause
暂停命令。方便用户查看信息,查看完毕后可继续执行。
- explorer
在 cmd 下输入explorer可打开文件夹图形界面,例如:
1 | // 在图形界面中打开当前文件夹 |
- %i
for循环在cmd命令行中的固定用法for %i in (set) do (…),循环变量格式为%i
1 | for %i in (1,2,3,5,8) do echo %i |
- %%i
for循环在bat处理程序中的固定用法for %%i in (set) do (…),循环变量格式为%%i
- &
顺序执行多条命令,而不管命令是否执行成功
- &&
顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令
- ||
顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令(即:只有前面命令执行错误时才执行后面命令)
- |
管道命令 前一个命令的执行结果输出到后一个命令 如:help|more
清除文件中原有的内容后再写入
追加内容到文件末尾,而不会清除原有的内容主要将本来显示在屏幕上的内容输出到指定文件中指定文件如果不存在,则自动生成该文件。
1 | certutil -hashfile user-history.db md5 >> hash.txt |
- cd /d %~dp0
1 | /d 表示直接切换到对应分区 |
批处理脚本示例
示例1:
1 | @echo off |
示例2:
1 | :: 定义变量 |
参考链接
- Batch file,by Wikipedia.
- 批处理最完整人性化教程(.bat文件语法), by s1ihome.
- 批处理命令之Start的详细用法,by QiaoZhi.
- windows批处理set命令,by 鹤唳九天.
- windows批处理——变量,命令换行,by undefined.
- Batch批处理字符串操作、for循环学习记录,by blingbling_110.
- .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别,by AlbertS.
- Bat命令学习-批处理中的&、&&、|、||、>、>>符号,by iloli.
- Windows certutil.exe 命令 简单举例 计算MD5与SHA1/256,by ldq_sd.
- cmd: cd /D %~dp0 的含义,by Nemo_XP.
- CMD获取当前目录的绝对路径 (当前盘符和路径:%~dp0),by 亟待!.