批处理是一种简化的脚本语言,应用于DOS和Windows系统中,由DOS或Winodws系统内嵌的命令解释器解释运行。(COMMAND.COM或CMD.EXE)
批处理文件具有.bat或.cmd的扩展名。
##命令
echo - 打开回显或关闭请求回显功能,或显示消息。 如:@echo hello world
rem - 注释,并不会被执行。
pause - 暂停,将显示 Press any key to continue...
call - 从一个批处理程序调用另一个批处理程序,并且不终止父批处理程序。如:@call f:\\2.bat
start - 调用外部程序,所有DOS命令和命令行程序都可以有start命令来调用。如:@start calc.exe (打开计算器)
goto - 程序指针跳转到指定标签。如::label \start \@goto label (执行该代码将不停的打开命令窗口)
set - 设置或删除变量。如:@set aa=abcd (创建变量aa并赋值abcd) @set aa(如aa已经定义则删除,否则该句无实质意义)
##符号
@ - 回显屏蔽,不显示@后面的命令。
> - 将输出信息重定向到指定设备或文件。如:echo aaaaa>a.txt(将aaaaa写入a.txt文件,文件不存在则创建,存在则先擦除)
>> - 与 > 基本相同,唯一区别是文件存在时是在末尾追加信息而不是擦除。
< - 将输出信息来源重定向为指定设备或文件。
| - 管道符号,将前面的命令输出结果重定向输出到管道符号后面的命令中区,作为后面命令的输入。
^ - 转义字符,将特殊字符转换成一般字符,特殊字符指的是:|&><^ 。如:@echo ^|
& - 逻辑命令符,用来连接n个DOS命令,并把这些命令按顺序执行,而不管是否有命令执行失败。
&& - 前面的命令成功执行时,执行其后面的命令,否则不执行。如:@echo abc||@echo cba
|| - 前面的命令执行不成功时,执行其后面的命令,否则不执行。
##文件夹管理
cd 显示当前目录名或改变当前目录。
md 创建目录。
rd 删除一个目录。
dir 显示目录中的文件和子目录列表。
tree 以图形显示驱动器或路径的文件夹结构。
path 为可执行文件显示或设置一个搜索路径。
copy 复制文件和目录树。
##文件管理
type 显示文本文件的内容。
copy 将一份或多份文件复制到另一个位置。
del 删除一个或数个文件。
move 移动文件并重命名文件和目录。
ren 重命名文件。
replace 替换文件。
attrib 显示或更改文件属性。
find 搜索字符串。
fc 比较两个文件或两个文件集并显示他们之间的不同。
##网络命令
ping 进行网络连接测试、名称解析。
ftp 文件传输。
net 网络命令集及用户管理。
telnet 远程登录。
ipconfig 显示、修改TCP/IP设置。
msg 给用户发送消息。
arp 显示、修改局域网的IP地址-物理地址映射列表。
##系统管理
at 安排在特定日期和时间运行命令和程序。
shutdown 立即或定时关机或重启。
tskill 结束进程。
taskkill 结束进程。(比tskill高级,但WinXPHome中没有)
tasklist 显示进程列表。(WinXP Home Edition中没有)
sc 系统服务设置与控制。
reg 注册表控制台工具。
powercfg 控制系统上的电源设置。
对于以上列出的所有名了,在cmd总输入命令+/?即可查看该命令的帮助信息(其实不+/?只输命令也可以)。不过都是英文的。
##语句结构
if - 条件判断,包括字符串比较、存在判断、定义判断等。比较操作符(compare-op)有:==等于、EQU等于、NEQ不等于、LSS小于、LEQ小于或等于、GTR大于、GEQ大于或等于
1 - 字符串比较:IF [not] string1 compare-op string2 command1 [else command2]
如:
if %str1%==%str2% (echo 字符串相同!)else (echo 字符串不相同)
if %str1% LSS %str2%(echo str1更小)else (echo str2更小)
2 - 存在判断(判断文件或文件夹是否存在):IF [NOT]EXIST filename command1 [else command2]
如:
if exist f:\\1.bat echo 文件1.bat是存在的!
if not exist f:\\1.bat echo 文件1.bat是不存在的!
3 - 定义判断(判断变量是否已经定义):IF [not] DEFINED eariable command1 [else command2]
如:
if defined var (echo var定义了)else (echo var没定义)
for - 循环结构
1 - 无开关,FOR %%variable IN (set) DO command 如:for %%i in (a,b,c,d,"string") do echo %%i
2 - 开关/L,FOR /L %%variable IN (start, step, end) DO command 如:for /l %%i in (1,2,10) do echo %%i
3 - 开关/F,FOR /F ["options"] %%variable IN (set) DO command
4 - 开关/D
5 - 开关/R
------未完待续