一、命令
从常用dos命令入手,结合bat的专用命令,熟悉批处理的代码习惯及常见风格
1、rem 或 ::,前者能回显,后者不
2、echo on/off/message @将屏蔽所在行输出显示,echo显示其是否打开,echo off关闭DOS提示符直至echo on打开,echo.换行,echo 'ctrl+G'发声,输入至命令或文件echo Answer|command,echo text>file,echo text>>file,控制打印机echo PrinterCtrlCode>PRN,echo PrintText>PRN,不换行发声set /p=<nul,echo Mes & pause>nul;
3、goto label
4、call file/:label start
5、pause >nul
6、set /a /p
7、find, findstr, type type test.txt|find /v /i /c /n "test"
8、setlocal enabledelayedexpansion,errorlevel出错1;
9、cls, title, color, mode color-置errorlevel1,mode con cols=2 lines=10;
10、assoc, ftype assoc .exe=exefile ftype exefile="%1"%*;
11、attrib +|- R A S H /S /D
12、pushd, popd pushd c:\tmp #保存当前目录并切换至c:\tmp;
13、date /t time /t 


二、符号
1、@ 回显屏蔽
2、% 变量引导 变量%var% 外部参数%1-%9等 %0文件本身 %*所有参数
3、> >> 输出重定向 覆盖与追加 此符号前不留空格
4、< <& >& 重定向 文件读入 句柄a输入写入句柄b 句柄a输出读入句柄b
5、| 命令管道 cmd1结果做cmd2参数
6、^ 转义 做<>&的前导得到符号,不成对的"前,
7、& && || 组合 多条cmd执行
8、"" 字符串界定
9、, ; () ! * ? + ,同空格 ;分割不同目标 ()被视为一条 !!变量延迟 
10、退格发声,两者制作办法-cmd-edit-ctrl+p-输入backspace,ctrl+g


三、结构
for 循环结构
1、基本格式 for %%var in (set) do command  
2、/d 搜索匹配目录 不与文件名匹配,仅当前目录下
3、/r 搜索指定目录匹配文件 
4、/l 数字序列 start,step,end 
5、/f 文件解析命令输出、字符串、文件内容 eol skip delims tokens (file/'command'/"string,files name") usebackq(file,"file"/'string'/`command`)
6、变量 ~i %~fi d p n x s a t z $PATH:


if 条件判断结构 
   3类条件[NOT] ERRORLEVEL number<命令完成退出值>/string1==string2<绝对相等的字符,注意空格>/EXIST filename command;
   else分支注意括号可迭代;


四、变量
1、%系统变量% 
ALLUSERSPROFILE APPDATA CD CMDCMDLINE CMDEXTVERSION COMPUTERNAME COMSPEC DATE ERRORLEVEL HOMEDRIVE HOMEPATH HOMESHARE LOGONSERVER NUMBER_OF_PROCESSORS OS PATH PATHEXT PROCESSOR_ARCHITECTURE PROCESSOR_LEVEL PROCESSOR_REVISION RANDOM SYSTEMDRIVE SYSTEMROOT TEMP TMP TIME USERDOMAIN USERPROFILE WINDIR 
2、set
清空 set var=
设置 set var=value
计算 set /a var=a+b,注意0x与08,进制问题,注意逻辑运算加转义字符
输入 set /p var=please enter
3、字符串替换截取
%PATH:str1=str2% 
%a:~m,n% m-偏移量,n截长,负数仅是从右定点,截取仍从左开始


五、常用工具
1、ftp
open ip user_user passwordpw bin prompt cd_pwd lcd_di mget_* bye
2、调用vbs脚本
CScript //b //i //logo //nologo //s
3、DOS功能的扩展,如reg、vbs等文件、系统操作,属于不断学习的内容;


六、编码风格
设定窗体-标题、尺寸、颜色、显示;
设置变量-集中设置,分别清空
分写功能-通过call :func和goto label,是代码结构清晰,功能明确;


结:批处理只是一种很简陋的语言工具,但贴近操作系统的日常使用,因而总会发挥出意想不到的功效;又因其简易,编写其代码更需要一种灵活的姿态。日积月累一些新的指令,加上清晰的书写风格,批处理也能成为工作的一大助力。