Win_Windows批处理bat详解,含⼤量可⽤实例
【实例简介】
1. IF-EXIST
1. ⾸先⽤记事本在C:\建⽴⼀个test1.bat批处理⽂件,⽂件内容如下:
@echo off
IF EXIST \AUTOEXEC.BAT TYPE \AUTOEXEC.BAT
IF NOT EXIST \AUTOEXEC.BAT ECHO \AUTOEXEC.BAT does not exist
⽂件:(访问密码:551685)
然后运⾏它:
C:>TEST1.BAT
如果C:\存在AUTOEXEC.BAT⽂件,那么它的内容就会被显⽰出来,如果不存在,批处理就会提⽰你该⽂件不存在。
2. 接着再建⽴⼀个test2.bat⽂件,内容如下:
@ECHO OFF
IF EXIST %1 TYPE %1
IF NOT EXIST %1 ECHO %1 does not exist
执⾏:
C:>TEST2 AUTOEXEC.BAT
该命令运⾏结果同上。
说明:
(1) IF EXIST 是⽤来测试⽂件是否存在的,格式为
IF EXIST [路径 ⽂件名] 命令
(2) test2.bat⽂件中的%1是参数,DOS允许传递9个批参数信息给批处理⽂件,分别为%1~%9(%0表⽰test2命令本⾝) ,这有点象编程中的实参和形参的关系,%1是形参,AUTOEXEC.BAT是实参。
==== willsort 编注 ===========================================
DOS没有 “允许传递9个批参数信息” 的限制, 参数的个数只会受到命令⾏长度和所调⽤命令处理能⼒的限制. 但是, 我们在批处理程序中,在同⼀时刻只能同时引⽤10个参数, 因为 DOS只给出了 %0~%9这⼗个参数引⽤符.
=======================================================
3. 更进⼀步的,建⽴⼀个名为TEST3.BAT的⽂件,内容如下:
@echo off
IF “%1” == “A” ECHO XIAO
IF “%2” == “B” ECHO TIAN
IF “%3” == “C” ECHO XIN
如果运⾏:
C:>TEST3 A B C
屏幕上会显⽰:
XIAO
TIAN
XIN
如果运⾏:
C:>TEST3 A B
屏幕上会显⽰
XIAO
TIAN
在这个命令执⾏过程中,DOS会将⼀个空字符串指定给参数%3。
2、IF-ERRORLEVEL
建⽴TEST4.BAT,内容如下:
@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:\
IF ERRORLEVEL 1 ECHO ⽂件拷贝失败
IF ERRORLEVEL 0 ECHO 成功拷贝⽂件
然后执⾏⽂件:
C:>TEST4
如果⽂件拷贝成功,屏幕就会显⽰"成功拷贝⽂件",否则就会显⽰"⽂件拷贝失败"。
IF ERRORLEVEL 是⽤来测试它的上⼀个DOS命令的返回值的,注意只是上⼀个命令的返回值,⽽且返回值必须依照从⼤到⼩次序顺序判断。
因此下⾯的批处理⽂件是错误的:
@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:\
IF ERRORLEVEL 0 ECHO 成功拷贝⽂件
IF ERRORLEVEL 1 ECHO 未到拷贝⽂件
IF ERRORLEVEL 2 ECHO ⽤户通过ctrl-c中⽌拷贝操作
IF ERRORLEVEL 3 ECHO 预置错误阻⽌⽂件拷贝操作
IF ERRORLEVEL 4 ECHO 拷贝过程中写盘错误
⽆论拷贝是否成功,后⾯的:
未到拷贝⽂件
⽤户通过ctrl-c中⽌拷贝操作
预置错误阻⽌⽂件拷贝操作
拷贝过程中写盘错误 都将显⽰出来。
⼏个常⽤命令的返回值及其代表的意义
backup
0 备份成功
1 未到备份⽂件
2 ⽂件共享冲突阻⽌备份完成
3 ⽤户⽤ctrl-c中⽌备份
4 由于致命的错误使备份操作中⽌
diskcomp
0 盘⽐较相同
1 盘⽐较不同
2 ⽤户通过ctrl-c中⽌⽐较操作
3 由于致命的错误使⽐较操作中⽌
4 预置错误中⽌⽐较
diskcopy
0 盘拷贝操作成功
1 ⾮致命盘读/写错
2 ⽤户通过ctrl-c结束拷贝操作
3 因致命的处理错误使盘拷贝中⽌
4 预置错误阻⽌拷贝操作
format
0 格式化成功
3 ⽤户通过ctrl-c中⽌格式化处理
4 因致命的处理错误使格式化中⽌
5 在提⽰"proceed with format(y/n)?"下⽤户键⼊n结束xcopy
0 成功拷贝⽂件
dos命令运行exe程序1 未到拷贝⽂件
2 ⽤户通过ctrl-c中⽌拷贝操作
4 预置错误阻⽌⽂件拷贝操作
5 拷贝过程中写盘错误
chkdsk
0 未到错误
255 到⼀个或多个错误
0 ⽤户按下ctrl c/break
1 ⽤户按下第⼀个键
255 检测到命令⾏中的错误条件
其它 ⽤户按下的有效字符在列表中的位置
defrag
0 碎⽚压缩成功
1 出现内部错误
2 磁盘上没有空簇。要运⾏DEFRAG,⾄少要有⼀个空簇
3 ⽤户⽤Ctrl C退出了DEFRAG
4 出现⼀般性错误
5 DEFRAG在读簇时遇到错误
6 DEFRAG在写簇时遇到错误
7 分配空间有错
8 内存错
9 没有⾜够空间来压缩磁盘碎⽚
deltree
0 成功地删除⼀个⽬录
diskcomp
0 两盘相同
1 发现不同
2 按CTRL C 终⽌了⽐较
3 出现严重错误
4 出现初始化错误
find
0 查成功且⾄少到了⼀个匹配的字符串
1 查成功但没到匹配的字符串
2 查中出现了错误
keyb
0 键盘定义⽂件装⼊成功
1 使⽤了⾮法的键盘代码,字符集或语法
2 键盘定义⽂件坏或未到
4 键盘、监视器通讯时出错
5 要求的字符集未准备好
0 成功地移动了指定的⽂件
1 发⽣了错误
msav /N
86 检查到了病毒
replace
0 REPLACE成功地替换或加⼊了⽂件
1 MS-DOS版本和REPLACE不兼容
2 REPLACE不到源⽂件
3 REPLACE不到源路径或⽬标路径
5 不能存取要替换的⽂件
8 内存不够⽆法执⾏REPLACE
11 命令⾏句法错误
restore
0 RESTORE成功地恢复了⽂件
1 RESTORE不到要恢复的⽂件
3 ⽤户按CTRL C终⽌恢复过程
4 RESTORE因错误⽽终⽌
scandisk
0 ScanDisk在它检查的驱动器上未检测到任何错误
1 由于命令⾏的语法不对,不能运⾏ScanDisk
2 由于内存⽤尽或发⽣内部错误,ScanDisk意外终⽌
3 ⽤户让ScanDisk中途退出
4 进⾏盘⾯扫描时,⽤户决定提前退出
254 ScanDisk到磁盘故障并已全部校正
255 ScanDisk到磁盘故障,但未能全部校正setver
0 SETVER成功地完成了任务
1 ⽤户指定了⼀个⽆效的命令开关
2 ⽤户指定了⼀个⾮法的⽂件名
3 没有⾜够的系统内存来运⾏命令
4 ⽤户指定了⼀个⾮法的版本号格式
5 SETVER在版本表中未到指定的项
6 SETVER未到SETVER.EXE⽂件

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。