《 Microsoft Windows Command-Line Administrator's Pocket Consultant》第三章的学习记录。
 
windows命令行脚本文件的后缀名为.bat或.cmd,可使用NotePad等软件把文件保存为这两种格式
 
cls  清除console窗口中的内容并且重启屏幕内容缓冲
rem  用于脚本中注释一行
echo 显示信息并且找开或关闭信息的显示(要显示一个空行,可用echo.)
@    以行为单位控制命令行的输出,常用来屏闭有命令输入的这一行
title  设置命令行窗口的标题
color  设置命令行窗口的背景颜色和字符颜色
 
向命令行脚本文件传递参数:
%0 ---代表文件名(也是命令)
%1-%9 ---代表后面的9个参数(按顺序)
%*  ---代表所有的参数
如果参数多于9个,剩下的参数并没有丢,可以使用shift左移参数,从而使多于9个的参数可见,shift还可以指定
从第几个参数开始左移,从而保留前面的参数,形式为:shift /数字.
默认是从第0个参数开始左移,左移一位。
 
输入set命令可以得到所有的系统变量和用户环境变量。
自定义变量的方法如:set variable_name=variable_value
变量名不能以数字开头,最好是有描述性的意义,并且windows命令行对大小写不敏感,即PATH与path是同一变量。
定义变量的同时,要给变量赋值,不能像C语言一样,可先定义再赋值。
清除一个自定义变量,赋给变量一个空字串,如:set working=
引用一个变量,在两个%符号之间,如:"%ERRORLEVEL%
 
环境变量errorlevel:
0 --- 命令正常执行
1 --- 一般错误
2 --- 命令执行错误
-2 ---数字上的错误
 
定义本地变量:
可以用setlocal命令来标识以后的变量为本地变量,其修改不会影响本地范围以外的相同变量。
可以用endllocal来标识本地变量的结束。
本地变量很像嵌套的命令行,新的命令行窗口中虽继承了父窗口中的环境变量,但其操作不会改变父窗口中变量的值。
 
windows命令行脚本可以使用数学运算符,赋值运算符,比较运算符,位操作运算符。但需要使用/a参数,如:
set /a theTotal=18+2
也可使用像C中一样的+=、-=、*=等类似的运算符。
 
windows脚本的选择结构:
1.if condition (statement1) [else (statement2)]
2.if not condition (statement1) [else (statement2)]
3.if defined variable statement
4.if not defined variable statement
选择结构的嵌套:
1.用()符号把嵌套的语句块括起来。
2.用 @ 符号标明嵌套和语句块的开始。
条件陈述中的比较运算符:== equ neq lss leq gtr geq
 
windows脚本的循环结构:
1.for iterator do (statement)
2.for %%variable in (fileSet) do (statement)
3.for /d %%variable in (directorySet) do (statement)
4.for /r [path] %%variable in (fileSet) do (statement)
5.for /f ["options"] %%variable in (source) do (statement)
 
windows脚本的结构化编程:
1.子程序(用goto语句和子程序的标识,标识由冒号加标识符组成,有点像汇编语言中的子程序调用方式)
2.过程调用(呆以调用另一个脚本文件,执行完成后再返回原来的文件,形式如:if ... call ...)