BAT命令大全.doc

上传人:文库蛋蛋多 文档编号:2401603 上传时间:2023-02-17 格式:DOC 页数:28 大小:80.50KB
返回 下载 相关 举报
BAT命令大全.doc_第1页
第1页 / 共28页
BAT命令大全.doc_第2页
第2页 / 共28页
BAT命令大全.doc_第3页
第3页 / 共28页
BAT命令大全.doc_第4页
第4页 / 共28页
BAT命令大全.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《BAT命令大全.doc》由会员分享,可在线阅读,更多相关《BAT命令大全.doc(28页珍藏版)》请在三一办公上搜索。

1、BAT命令大全1 echo 和 #关闭单行回显echo off #从下一行开始关闭回显echo off #从本行开始关闭回显。一般批处理第一行都是这个echo on #从下一行开始打开回显echo #显示当前是 echo off 状态还是 echo on 状态echo. #输出一个”回车换行”,空白行 #(同echo, echo; echo+ echo echo echo/ echo) 2 errorlevelecho %errorlevel%每个命令运行结束,可以用这个命令行格式查看返回码默认值为0,一般命令执行出错会设 errorlevel 为13 dirdir #显示当前目录中的文件和子

2、目录dir /a #显示当前目录中的文件和子目录,包括隐藏文件和系统文件dir c: /a:d #显示 C 盘当前目录中的目录dir c: /a:-d #显示 C 盘根目录中的文件dir c: /b/p #/b只显示文件名,/p分页显示dir *.exe /s #显示当前目录和子目录里所有的.exe文件4 cdcd #进入根目录cd #显示当前目录cd /d d:sdk #可以同时更改盘符和目录5 mdmd d:abc #如果 d:a 不存在,将会自动创建中级目录#如果命令扩展名被停用,则需要键入 mkdir abc。6 rdrd abc #删除当前目录里的 abc 子目录,要求为空目录rd

3、/s/q d:temp #删除 d:temp 文件夹及其子文件夹和文件,/q安静模式7 deldel d:test.txt #删除指定文件,不能是隐藏、系统、只读文件del /q/a/f d:temp*.*删除 d:temp 文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录del /q/a/f/s d:temp*.*删除 d:temp 及子文件夹里面的所有文件,包括隐藏、只读、系统文件,不包括子目录8 ren ren d:temp tmp #支持对文件夹的重命名9 cls清屏10 type显示文件内容type c:boot.ini #显示指定文件的内容,程序文件一般会显示乱码typ

4、e *.txt #显示当前目录里所有.txt文件的内容11 copy拷贝文件copy c:test.txt d:test.bak复制 c:test.txt 文件到 d: ,并重命名为 test.bakcopy con test.txt从屏幕上等待输入,按 Ctrl+Z 结束输入,输入内容存为test.txt文件con代表屏幕,prn代表打印机,nul代表空设备copy 1.txt + 2.txt 3.txt合并 1.txt 和 2.txt 的内容,保存为 3.txt 文件如果不指定 3.txt ,则保存到 1.txtcopy test.txt +复制文件到自己,实际上是修改了文件日期12 ti

5、tle设置cmd窗口的标题title 新标题 #可以看到cmd窗口的标题栏变了13 ver显示系统版本14 label 和 vol设置卷标vol #显示卷标label #显示卷标,同时提示输入新卷标label c:system #设置C盘的卷标为 system15 pause暂停命令16 rem 和 :注释命令注释行不执行操作17 date 和 time日期和时间date #显示当前日期,并提示输入新日期,按回车略过输入date/t #只显示当前日期,不提示输入新日期time #显示当前时间,并提示输入新时间,按回车略过输入time/t #只显示当前时间,不提示输入新时间18 goto 和 :

6、跳转命令:label #行首为:表示该行是标签行,标签行不执行操作goto label #跳转到指定的标签那一行19 find (外部命令)查找命令find abc c:test.txt在 c:test.txt 文件里查找含 abc 字符串的行如果找不到,将设 errorlevel 返回码为1find /i “abc” c:test.txt查找含 abc 的行,忽略大小写find /c abc c:test.txt显示含 abc 的行的行数20 more (外部命令)逐屏显示more c:test.txt #逐屏显示 c:test.txt 的文件内容21 tree显示目录结构tree d: #

7、显示D盘的文件目录结构22 &顺序执行多条命令,而不管命令是否执行成功23 &顺序执行多条命令,当碰到执行出错的命令后将不执行后面的命令find ok c:test.txt & echo 成功如果找到了ok字样,就显示成功,找不到就不显示24 |顺序执行多条命令,当碰到执行正确的命令后将不执行后面的命令find ok c:test.txt | echo 不成功如果找不到ok字样,就显示不成功,找到了就不显示25 |管道命令dir *.* /s/a | find /c .exe管道命令表示先执行 dir 命令,对其输出的结果执行后面的 find 命令该命令行结果:输出当前文件夹及所有子文件夹里的

8、.exe文件的个数type c:test.txt|more这个和 more c:test.txt 的效果是一样的26 和 输出重定向命令 清除文件中原有的内容后再写入 追加内容到文件末尾,而不会清除原有的内容主要将本来显示在屏幕上的内容输出到指定文件中指定文件如果不存在,则自动生成该文件type c:test.txt prn屏幕上不显示文件内容,转向输出到打印机echo hello worldcon在屏幕上显示hello world,实际上所有输出都是默认 con 的copy c:test.txt f: nul拷贝文件,并且不显示文件复制成功的提示信息,但如果f盘不存在,还是会显示出错信息co

9、py c:test.txt f: nul 2nul不显示”文件复制成功”的提示信息,并且f盘不存在的话,也不显示错误提示信息echo W Wc:test.txt生成的文件内容为 W W 和 是控制命令,要把它们输出到文件,必须在前面加个 符号27 temp.txtdate c:test.txt生成的文件内容为 load %1 %2批处理文件里,用这个格式把命令行参数输出到文件29 if判断命令if %1=/a echo 第一个参数是/aif /i %1 equ /a echo 第一个参数是/a/i 表示不区分大小写,equ 和 = 是一样的,其它运算符参见 if/?if exist c:tes

10、t.bat echo 存在c:test.bat文件if not exist c:windows ( echo 不存在c:windows文件夹 )if exist c:test.bat ( echo 存在c:test.bat ) else ( echo 不存在c:test.bat )30 setlocal 和 endlocal设置”命令扩展名”和”延缓环境变量扩充”SETLOCAL ENABLEEXTENSIONS #启用命令扩展名SETLOCAL DISABLEEXTENSIONS #停用命令扩展名SETLOCAL ENABLEDELAYEDEXPANSION #启用延缓环境变量扩充SETLO

11、CAL DISABLEDELAYEDEXPANSION #停用延缓环境变量扩充ENDLOCAL #恢复到使用SETLOCAL语句以前的状态“命令扩展名”默认为启用“延缓环境变量扩充”默认为停用批处理结束系统会自动恢复默认值可以修改注册表以禁用命令扩展名,详见 cmd /? 。所以用到命令扩展名的程序,建议在开头和结尾加上 SETLOCAL ENABLEEXTENSIONS 和 ENDLOCAL 语句,以确保程序能在其它系统上正确运行延缓环境变量扩充主要用于 if 和 for 的符合语句,在 set 的说明里有其实用例程31 set设置变量引用变量可在变量名前后加 % ,即 %变量名%set #

12、显示目前所有可用的变量,包括系统变量和自定义的变量echo %SystemDrive% #显示系统盘盘符。系统变量可以直接引用set p #显示所有以p开头的变量,要是一个也没有就设errorlevel=1set p=aa1bb1aa2bb2 #设置变量p,并赋值为 = 后面的字符串,即aa1bb1aa2bb2echo %p% #显示变量p代表的字符串,即aa1bb1aa2bb2echo %p:6% #显示变量p中第6个字符以后的所有字符,即aa2bb2echo %p:6,3% #显示第6个字符以后的3个字符,即aa2echo %p:0,3% #显示前3个字符,即aa1echo %p:-2%

13、#显示最后面的2个字符,即b2echo %p:0,-2% #显示除了最后2个字符以外的其它字符,即aa1bb1aa2becho %p:aa=c% #用c替换变量p中所有的aa,即显示c1bb1c2bb2echo %p:aa=% #将变量p中的所有aa字符串置换为空,即显示1bb12bb2echo %p:*bb=c% #第一个bb及其之前的所有字符被替换为c,即显示c1aa2bb2set p=%p:*bb=c% #设置变量p,赋值为 %p:*bb=c% ,即c1aa2bb2set /a p=39 #设置p为数值型变量,值为39set /a p=39/10 #支持运算符,有小数时用去尾法,39/1

14、0=3.9,去尾得3,p=3set /a p=p/10 #用 /a 参数时,在 = 后面的变量可以不加%直接引用set /a p=”1&0 #”与”运算,要加引号。其它支持的运算符参见set/?set p= #取消p变量set /p p=请输入屏幕上显示”请输入”,并会将输入的字符串赋值给变量p注意这条可以用来取代 choice 命令注意变量在 if 和 for 的复合语句里是一次性全部替换的,如echo offset p=aaaif %p%=aaa ( echo %p% set p=bbb echo %p% )结果将显示aaaaaa因为在读取 if 语句时已经将所有 %p% 替换为aaa这里

15、的替换,在 /? 帮助里就是指扩充、环境变量扩充可以启用”延缓环境变量扩充”,用 ! 来引用变量,即 !变量名!echo offSETLOCAL ENABLEDELAYEDEXPANSIONset p=aaaif %p%=aaa ( echo %p% set p=bbb echo !p! )ENDLOCAL结果将显示aaabbb还有几个动态变量,运行 set 看不到%CD% #代表当前目录的字符串%DATE% #当前日期%TIME% #当前时间%RANDOM% #随机整数,介于032767%ERRORLEVEL% #当前 ERRORLEVEL 值%CMDEXTVERSION% #当前命令处理器

16、扩展名版本号%CMDCMDLINE% #调用命令处理器的原始命令行可以用echo命令查看每个变量值,如 echo %time%注意 %time% 精确到毫秒,在批处理需要延时处理时可以用到32 start批处理中调用外部程序的命令,否则等外部程序完成后才继续执行剩下的指令33 call批处理中调用另外一个批处理的命令,否则剩下的批处理指令将不会被执行有时有的应用程序用start调用出错的,也可以call调用34 choice (外部命令)选择命令让用户输入一个字符,从而选择运行不同的命令,返回码errorlevel为1234win98里是win2000pro里没有,可以从win98里拷过来wi

17、n2003里是choice.exechoice /N /C y /T 5 /D ynul延时5秒35 assoc 和 ftype文件关联assoc 设置文件扩展名关联,关联到文件类型ftype 设置文件类型关联,关联到执行程序和参数当你双击一个.txt文件时,windows并不是根据.txt直接判断用 notepad.exe 打开而是先判断.txt属于 txtfile 文件类型再调用 txtfile 关联的命令行 txtfile=%SystemRoot%system32NOTEPAD.EXE %1可以在文件夹选项文件类型里修改这2种关联assoc #显示所有文件扩展名关联assoc .txt

18、#显示.txt代表的文件类型,结果显示 .txt=txtfileassoc .doc #显示.doc代表的文件类型,结果显示 .doc=Word.Document.8assoc .exe #显示.exe代表的文件类型,结果显示 .exe=exefileftype #显示所有文件类型关联ftype exefile #显示exefile类型关联的命令行,结果显示 exefile=%1 %* assoc .txt=Word.Document.8设置.txt为word类型的文档,可以看到.txt文件的图标都变了assoc .txt=txtfile恢复.txt的正确关联 ftype exefile=%1

19、 %*恢复 exefile 的正确关联如果该关联已经被破坏,可以运行 ,再输入这条命令36 pushd 和 popd切换当前目录echo offc: & cd & md mp3 #在 C: 建立 mp3 文件夹md d:mp4 #在 D: 建立 mp4 文件夹cd /d d:mp4 #更改当前目录为 d:mp4pushd c:mp3 #保存当前目录,并切换当前目录为 c:mp3popd #恢复当前目录为刚才保存的 d:mp437 for循环命令这个比较复杂,请对照 for/? 来看for %i in (c: d: e: f:) do echo %i依次调用小括号里的每个字符串,执行 do 后面

20、的命令注意%i,在批处理中 for 语句调用参数用2个%默认的字符串分隔符是空格键,Tab键,回车键for %i in (*.txt) do find abc %i对当前目录里所有的txt文件执行 find 命令for /r . %i in (*.txt) do find abc %i在当前目录和子目录里所有的.txt文件中搜索包含 abc 字符串的行for /r . %i in (.) do echo %pni显示当前目录名和所有子目录名,包括路径,不包括盘符for /r d:mp3 %i in (*.mp3) do echo %id:mp3.txt把 d:mp3 及其子目录里的mp3文件的

21、文件名都存到 d:mp3.txt 里去for /l %i in (2,1,8) do echo %i生成2345678的一串数字,2是数字序列的开头,8是结尾,1表示每次加1for /f %i in (set) do echo %i对 set 命令的输出结果循环调用,每行一个for /f eol=P %i in (set) do echo %i取 set 命令的输出结果,忽略以 P 开头的那几行for /f %i in (d:mp3.txt) do echo %i显示 d:mp3.txt 里的每个文件名,每行一个,不支持带空格的名称for /f delims= %i in (d:mp3.txt

22、) do echo %i显示 d:mp3.txt 里的每个文件名,每行一个,支持带空格的名称for /f skip=5 tokens=4 %a in (dir) do echo %a对 dir 命令的结果,跳过前面5行,余下的每行取第4列每列之间的分隔符为默认的空格可以注意到 dir 命令输出的前5行是没有文件名的for /f tokens=1,2,3 delims=- %a in (date /t) do ( echo %a echo %b echo %c )对 date /t 的输出结果,每行取1、2、3列第一列对应指定的 %a ,后面的 %b 和 %c 是派生出来的,对应其它列分隔符指定

23、为 - 和空格,注意 delims=- 后面有个空格其中 tokens=1,2,3 若用 tokens=1-3 替换,效果是一样的for /f tokens=2* delims=- %a in (date /t) do echo %b取第2列给 %a ,其后的列都给 %b32 subst (外部命令)映射磁盘。subst z: serverd #这样输入z:就可以访问serverd了subst z: /d #取消该映射subst #显示目前所有的映时38 xcopy (外部命令)文件拷贝xcopy d:mp3 e:mp3 /s/e/i/y复制 d:mp3 文件夹、所有子文件夹和文件到 e: ,

24、覆盖已有文件加 /i 表示如果 e: 没有 mp3 文件夹就自动新建一个,否则会有询问如何写BAT命令计算机知识 2009-01-29 15:32 阅读512 评论2 字号: 大大 中中 小小 这篇也是在别人的博客里借用过来与大家共享的。如何创建批处理文件?不要听了批处理文件就感到很神气,其实这东西很简单的你用过记事本没有?用过?好的将记事本打开,什么都不用写,然后选择文件,保存保存类型选择所有文件,文件名则命名为bat这个代表是文件名,你可以随便的起保存好之后,看看你保存的地方,会出现一个白色窗口里有个黄色齿轮的图标这东西就是你创建的批处理文件,双击他就可以运行,但他现在由于里面没有输入任何

25、命令,所以他运行了并不会做任何事情当我们想往这个.bat文件中添加东西时,只要右键选择他,然后选择编辑,就可以打开记事本往内输入命令了批处理文件中的命令是什么?批处理文件中的命令暂时先可以理解为dos命令,等稍后深入理解了以后再进行解释批处理顾名思义就是一大堆东西堆在一起处理换句话说就是往里面写一条条dos命令,然后按顺序挨个执行,效果跟你在cmd里敲dos命令是一个效果只不过用批处理写好之后,要运行只要双击下就可以运行了而不用再一遍一遍的重复的往里面打命令这就是批处理文件的好处除了运行dos命令之外,他还可以支持选择结构if,循环结构for,goto等,与c有点类似,但远没有c全面,并且编写

26、语言十分不规范批处理语法:先讲个最基本的东西echo offecho的意思是回旋,这里的意思就是回显,echooff意思就是关闭回显前面的表示echo off 这一行也不会回显你可以试着去掉和整行去掉的另一个功能是在执行完批处理文件时自动恢复命令回显。如果第一句用的是ECHO OFF,那么在执行完批处理文件以后不会显示命令提示符。举个例子:如果我们先创建一个bat文件,往里面输入:dir 然后保存在c:下然后我们运行cmd,进入c盘根目录下,输入bat,则显示:C:dir驱动器 C 中的卷没有标签。卷的序列号是 0C5D-07FFC: 的目录2004-08-25 00:45 WINDOWS20

27、04-08-25 00:51 Documents and Settings.C:如果将bat内容修改成echo offdir然后再在cmd里输入bat,则会显示 C:echo off/因为运行了echooff,所以没有显示dir命令,直接显示了结果驱动器 C 中的卷没有标签。卷的序列号是 0C5D-07FFC: 的目录2004-08-25 00:45 WINDOWS2004-08-25 00:51 Documents and SettingsC:如果将bat文件修改成:echo offdir则显示成:C:1.bat /与前面不同,并没有显示echooff,原因是加了,所以不显示后面的内容又因为

28、加/了echooff,所以后面的命令不显示,直接显示结果驱动器 C 中的卷没有标签。卷的序列号是 0C5D-07FFC: 的目录2004-08-25 00:45 WINDOWS2004-08-25 00:51 Documents and SettingsC:通过以上的比较,相信你对echooff命令已经充分掌握了接下来讲的是call命令: call是打电话的call,而不是喔靠的靠:)call的意思为调用假如有个批处理文件a.bat和b.bat如果我想运行a.bat的当中运行b.bat如何运行呢?其实很简单,只要在a.bat文件中输入call命令,则可以在a.bat运行的当中,运行b.bat,

29、等b.bat运行完之后,继续执行a.batcall命令格式:CALL drive:pathfilename batch-parametersbatch-parameters 指定批处理程序所需的命令行信息。举例如下,我们在c盘根目录下创建abat文件,内容为:echothis is a.batcall d:b.batecho done然后在d盘根目录下创建b.bat,内容为:echo this is b.bat保存后,打开cmd,进入c盘根目录,然后输入1.bat,显示如下:C:a.batC:echo this is a.batthis is a.batC:call d:b.batC:echo

30、 this is b.batthis is b.batC:echo donedone由例子很容易看出来,是先运行a.bat的内容,直到遇到callb.bat后,则调用b.bat,运行完b.bat后,再返回a.bat接着运行callb.bat后面的echodone语句,直至将a.bat的所有批处理命令运行完注:里面有个batch-parameters里面的所指的参数是什么,知道的朋友能否告知,不胜感激PAUSE 命令暂停批处理程序的执行并显示一条消息,提示用户按任意键继续执行。只能在批处理程序中使用该命令。rem命令:表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序

31、中的注释)同时你可以用两个冒号来替代rem如::等同于一个rem但他们有个区别,就是用:作注释的话他是不回显的,即使你打echoon强制回显也没有同的同时rem可以在config.sys中加注释语法: remcommnet批处理文件参数:有点变成基础的人都知道函数有参数批处理文件也有参数我打个比方,希望能帮助没有语言基础的人也能看的非常明白我从例子里开始吧首先在c盘根目录下创建一个批处理文件 abat,里面输入内容echo %1然后打开cmd,然后进入c盘根目录输入:a this is a canshu得到结果如下:C:a.bat this is a testC:echo this is a

32、testthis is a test输入的a this is a canshu中,a为新建的a.bat的文件名a(后面的.bat可写也可不写),而a后面的this is a canshu这句话就是参数,写在这的参数,在程序运行中就将参数自动放到批处理程序中去那么放在什么位置呢?就是放在%1的地方看了例子,让我们看看整个关于参数的定义如何:批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符%。 %1-9表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用

33、%1到%9顺序表示。/我们上个程序的例子里就有,他就是参数,而输入中thisisatest作为参数就直接放到的位置,于是程序就变成了 echo this is a test再举几个例子帮助你理解:C:根目录下一批处理文件名为b.bat,内容为: echo off type %1 /type为dos中的输出命令,可以用来输出文本文件的内容,比如我们新建一个txt文件/里面输入内容,保存进cmd,如果输入txt则看不了txt文件内容,但是如果我/想看怎么办呢?这时候可以用type命令,只要在cmd里输入typetxt就能显示/txt文件中的内容了type %2 那么运行C:b a.txt b.tx

34、t %1 : 表示a.txt %2 : 表示b.txt 于是上面的批处理命令就变成了echo offtype a.txttype b.txt于是上面的命令将顺序地显示a.txt和b.txt文件的内容。没有编程基础的人可能要问,干什么要弄个参数啊?在后面加个参数多麻烦啊?直接往里面写不就好了啊?!其实这样想有对的方面也有错的方面还是举个例子说明吧第一步还是在c盘根目录下新建一个批处理文件,我们取名仍为a.bat往里面的内容输入为:ping %1/ping命令可以简单理解为测试一台机器开着还是没有开,如果开着的话,他就回给你回送回应然后进cmd,我们想测试下的服务器是不是开着,则输入a 对于知道p

35、ing命令的人,可以打ping进行检查,但如果想ping的人不知道ping命令怎么用,那怎么办啊?这时候你就可以把命令预先输入到批处理文件中,保存好,然后让不会用的人进cmd,运行你的批处理文件,文件名后面加上他要ping的网站地址就行了换句话说,他想ping就直接加的网址,想pingsina就直接加sina的网址这样只要输入一个参数,而不用改程序本身,整个程序的通用性就大大提高了这是对于一个简单的ping命令,你或许觉得用参数不值得,还是直接改不就好了啊但如果程序有很多条,你一下找不到在哪改怎么办啊?所以,不管你是菜哥,菜弟,菜姐,菜妹,只要运行下,输入参数,结果自己就会出来,不用再象你一样

36、,考虑怎么编写批处理文件人家只要知道是输入什么东西能让批处理程序运行,而编写的人则想的是如何让不懂程序的人能运行程序批处理参数就这么简单,不知道你理解了没有?但如果你想深一步了解批处理参数,可以接着往下看,如果不想深入了解,知道现在这么多也就够了因为参数只有,但当我们要引用第十个或更多个参数时, 就必须移动DOS 的参数起始指针. shift 命令正充当了这个移动指针的角色, 它将参数的起始指针移动到下一个参数, 类似C 语言中的指针操作. 图示如下: 初始状态, cmd 为命令名, 可以用 %0 引用 cmd arg1 arg2 arg3 arg4 arg5 arg6 arg7 arg8 arg9 arg10

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号