bat脚本的基本关键字介绍及脚本实例
正常情况下将手工操作的行为转换为DOS命令,然后放入到.bat文件中就完成了一键脚本的制作,本文中的一键备份&清理脚本仅作为抛砖引玉的作用,主要目的用于学习下bat脚本的基本关键字
关于.bat 脚本说明
.bat 脚本主要用于 Windows 系统执行的脚本文件。
实际就是将人为的系统操作使用 DOS 命令集合起来,通过脚本来完成自己想做的事情。
只需要整理清自己执行任务的步骤,一步步写命令,附带一些控制语句,一个.bat 脚本就完成了。
当然,本文脚本仅作为抛砖引玉作用,可以提供一个制作.bat 脚本的思路
基本关键字
本文不会详细描述系统行为所对应的 DOS 命令,主要针对 bat 脚本中一些关键字和词做解释。
- REM 和 :: (注释,以此开头的字符串会被认为脚本注释)
- ECHO 和 @ (打开或关闭执行回显,格式 echo [{ on|off }],注意 @ 字符放在命令前将关闭该命令回显,无论此时 echo 是否为打开状态)
- PAUSE (暂停,停止系统命令的执行并显示下面的内容,一般用作按键提示)
- ERRORLEVEL (程序返回码,通过 %errorlevel% 可以取到上一句命令的返回码)
- TITLE (设置窗口标题,title 窗口标题名)
- COLOR (设置默认的控制台前景和背景颜色,color fc 白色背景红色前景)
- mode (配置系统设备,该命令具备很多功能)
- GOTO 和 : (跳转,于:搭配使用,如 goto jump 和:jump,程序执行到 goto jump 会直接调到:jump 向后执行,可用此做循环)
- FIND (文件中搜索字符串,基础用法 find 字符串 文件名)
- START (批处理中调用外部程序的命令,start gogo.exe,一般情况脚本不会因此停止会继续向下执行)
- assoc 和 ftype (设置文件拓展名和文件类型的关联,一般会用于编辑器或者播放器等设置脚本)
- pushd 和 popd (切换当前目录,pushd d:mp4 保存一个目录,popd 恢复并切换到该目录,一般会用于如记住安装目录)
- CALL (调用另一个批处理,当另一个批处理执行完后,再继续执行原来的批处理)
- shift (更改批处理文件中可替换参数的位置)
- IF (条件判断语句,这个不用多解释)
- setlocal 与 变量延迟 (建议单独深入了解)
- ATTRIB (显示或更改文件属性)
实例代码
在 bat 脚本中:号后面跟的内容是注释,执行的时候是会跳过。
:关闭控制台打印
@echo off
:获取当前日期,date获取日期DOS命令:2015–11–09星期四,~0,4表示截取第0位的后四位(2015),~5,2(11),~8,2(09)
set ThisDay=%date:~0,4%%date:~5,2%%date:~8,2%
set /a YestDays=%ThisDay%-1
:ThisDay结果是20151109,昨天的日期字符20151108(跨月的时候有问题)
md D:MebugsPackageHistory%YestDays%Service
:进入归档路径
cd /d D:MebugsPackageService
:如果识别到昨天的归档包,进行拷贝到创建好的昨日备份
if exist MEBUGS_PLUS_%YestDays%.zip (
copy /y MEBUGS_PLUS_%YestDays%.zip D:MebugsPackageHistory%YestDays%Service
)
:删除昨天的文件
del *_%YestDays%.zip
主要作用
实际上我一开始使用 ANT 编译脚本实现归档之前的备份,那样操作是非常 Easy 的。
但是由于逻辑组网(WLAN)的原因,编译环境没有办法跨子网进行文件操作。
这个.bat 脚本最终通过 Windows 定时任务,在每天 00:05 自动执行。
待处理 BUG
跨月的时候,%ThisDay%-1 这个计算结果有问题,但是,懒得改了 Orz
