bat教程.docx
《bat教程.docx》由会员分享,可在线阅读,更多相关《bat教程.docx(11页珍藏版)》请在冰点文库上搜索。
bat教程
BAT简明教程
3G_Mobile
2006年10月30日~2006年11月4日
目录
1.基础
2.参数与组合
3.管道命令
4.一个实例
一.基础
1.echo
打开或关闭回显功能,也用于显示消息.
用法:
Echoon/off
Echo[message]
效果如下
执行echooff之后不显示任何信息.输入echoon方重新看见提示.
哦,让你看见我的名字了!
2.@
隐藏它后面的内容,否则CMD把正在执行的命令显示的一清二楚.
在D盘下新建p.bat,输入:
@echoSB!
保存并执行.效果如下
修改p.bat,去掉@,看看运行结果有何不同.
3.if
含义很清楚,直接介绍用法.
(1)if变量==字符串要执行的命令
(2)if[not]exist文件名要执行的命令
见我近期的跟帖.
在D盘新建if.bat,内容为
@Ifexistp.batechosucceed
保存执行.
4.rem
在这里还是要介绍一下.用法:
Rem[message]
Rem语句并不执行,仅仅起个注释作用.
5.pause
挂起的命令,使用较简单.看一下效果便知:
6.call
暂停且调用另一个批处理文件.子文件执行完后方继续执行父文件,也就是原来那个.
用法:
Call[path]filename
省略path意味着子文件与父文件在同一目录中;filename的类型可以是.bat或.com文件.
在D盘下新建call.bat,内容为
@callp.bat
保存运行,效果如下
挨骂的感觉好不好?
更多的详细用法使用call/?
查看.我不讲了.
7.start
调用外部命令,如Xcopy.exe,Shutdown.exe等.所有的DOS命令和命令行程序都可以由start调用.
用法和常见参数:
START["title"][/Dpath][/I][/MIN][/MAX][/SEPARATE|/SHARED]
[/LOW|/NORMAL|/HIGH|/REALTIME|/ABOVENORMAL|/BELOWNORMAL]
[/WAIT][/B][command/program]
[parameters]
MIN开始时窗口最小化
SEPARATE在分开的空间内开始16位Windows程序
HIGH在HIGH优先级类别开始应用程序
REALTIME在REALTIME优先级类别开始应用程序
ABOVENORMAL在ABOVENORMAL优先级类别开始应用程序
BELOWNORMAL在BELOWNORMAL优先级类别开始应用程序
WAIT启动应用程序并等候它结束
parameters这些为传送到命令/程序的参数
如果仅仅是一条start语句而无后继内容,将打开一个新的cmd窗口.
8.choice
让用户输入一个字符,从而运行不同的命令,例如常见的Y/N.
用法:
Choice[/Cchoices][/N][/CS][/Ttimeout/Dchoice][/Mtext]
/Cchoices创建选项列表,默认是”YN”.
/N隐藏选项列表.
/CS区分大小写,默认不区分.
/Ttimeout时间一到,就作出默认选择!
范围是0~9999.如果设成0就没有暂停立即选默认项.
/D在N秒之后指定默认选项.
/M显示提示信息.
说了一大堆,不如演示一个:
在命令行窗口输入以下内容
Choice/CYNC/M”YES-Y,NO-N,CANCEL-C”
运行.效果自己看吧.我的机器有点问题.
9.for
总体印象-好用!
我只介绍一种常用格式,其余的自己for/?
去.
For/F[“optiongs”]%%variableIN(file-set)DOcommand[parameters]
/F表示跳过空白行,同时分行执行command中的命令.
Options不同功能的关键字.
Variable单一字母可替换的参数
Fileset一个或一组文件,可以使用通配符.
现在举一例.
在D盘下新建文本文件zl.txt,输入数字1~5,每行一个.好了吗?
再新建一个for.bat,内容:
@for/f%%iin(zl.txt)do@echo%%i
运行效果如下.当然,你可以把数字换成一句一句的话,再利用前面的choice命令,制作一个心理测试小游戏.看你的创造力了.
10.del
删除文件.想必你对它的用法不陌生,在此不多作介绍了.
只介绍一下网络服务方面的用途.98上不少人都知道利用netuser增减用户和修改密码.
Netstart[service]打开指定的网络服务service是服务名,若省略service则打开所有能够开启的网络服务.
Netstopservice用于关闭网络服务.service不能省.
这11条命令都可以单独使用.
二.参数与组合命令
甲.使用参数
批处理中最常用的是%0~%9,举个例子来说明.
新建c.bat,输入以下内容:
@If“%1”==”s1”echothisis%1
@If“%2”==”s2”echothisis%2
等号就是C语言里的那个.
保存,然后我们运行它,在cmd窗口输入
c.bats1s2
结果如下
根据约定,%0用来指代c.bat本身.是不是和C语言有点像?
乙.组合命令
1.&
使用格式:
命令1&命令2&….
可同时执行多条命令,而不管命令是否执行成功.
看看效果.
2.&&
格式:
命令1&&命令2&&….
同时执行多条命令,若其中一条执行失败则中止.
演示:
新建g.bat,内容:
echo1&&echo2&&if"%1"=="s1"echo3&&echo4
保存运行.
以下是输入”g.bats1.”与”g.bats”的运行结果.差别请自行体会.
3.||
格式:
命令1||命令2||….
当碰到执行正确的命令之后就停止执行.把上面的例子稍微改一改.自己运行.
第二节完了~~~
三.管道命令
管道嘛,用来传输数据的.常用的有三类.先简单介绍一下.
1.|
格式:
命令1|命令2|……
含义是将前一条命令的结果作为后一条命令的参数来使用.
2.>>>
将一条命令或者一个程序的输出结果导出到指定的文件中.>表示先清除文件内容再重写,>>表示追加.
例如,echoSB!
>>sb.txt运行后将SB!
写入hello.txt中.如果不存在此文件则自动创建.
3.<
<表示从文件中读入命令输入.
现在来看个具体的应用例子.
手动查找system32目录中的木马
思路:
怀疑机器中了木马时;马上导出system32目录下的exe文件和dll文件.与正常状态下的备份进行比较,找出多出来的文件,然后在这些文件中确定是否存在木马.
1.备份
仔细看截图.
2.导出异常时的exe文件和dll文件列表exec.txt和dllc.txt
3.比较
输入
Fcd:
\exeb.txtd:
\exec.txt&fcd:
\dllb.txtd:
\dllc.txt>>d:
\diff.txt
4.确定
以下是diff.txt的部分内容.
四.一个综合利用批处理的实例
系统加固
以前有人教过如何利用批处理清理系统垃圾,我只想通过这个例子告诉大家利用批处理关闭一些不必要的服务和功能.
例子比较简单,希望各位能举一反三.