写在前:此文适合有一定dos命令基础的人看。文件资料主要来自互联网和个人整理。文件只适用学习交流,非法操作,责任自负。如有错误之处,大家多批评指正。邮箱:heou0709@126
第一章:批处理基础之命令篇
1.注释命令:
rem 加注释用,该命令后的同一行内容不被执行,但在echo on状态下能回显。
符号::也起到注释作用,其功能和程序语言中的注释相同,永不回显,只是给批处理员在TXT格式下看的帮助内容 用::有需注意,任何以冒号:开头的字符行, 在批处理中都被视作标号, 而直接忽略其后的所有内容。(有效标号:冒号后紧跟一个以数字开头的字符串,goto语句可以识别;无效标号:冒号后紧跟一个非数字的一个特殊符号,goto语句无法识别)
行内注释:%注释内容%(不常用,慎用)
2.Echo和@命令:
>>echo 单独写表示显示echo设置状态
>>echo +信息内容 ,此法常用来提示用户操作
>>echo on 显示后面命令的回显,echo off 关闭后面命令的回显,注意的是,在使用此命令时,后面的命令要换一行 不然就会当作“信息内容”处理 当然此法只是可以用来操作echo on/off后面的命令,如果要关闭echo on/off命令本身,则需要在echo on/off命令前加@ 操作。即:@ echo off 换行写命令
>>在DOS提示符下输入echo off ,将关闭DOS提示符的显示,使屏幕只留下光标,直到键入echo off,提示符才会重新出现。
>>echo。注意的echo后面紧跟(不能有空格)英文状态下的点号,且点号可以用“,:”等任一符号来替代。举例:ime 相当于在time命令后给出一个回车,即在执行时系统会在显示当前时间后,换行,再自动返回到DOS提示状态。
>>echo 答复语|命令文件名 此法可以用于简化一些需要人机对话的命令,它是通过DOS管道命令把echo命令输入的预置答复作为人机对话命令的输入。举例:echo Y|del d:\1.txt
此命令相当于在出现人机对话时输入“Y”回车。故命令执行后会直接将D盘下的1.txt文件删除(不会放入回收站,慎用del)
>>echo 文件内容>文件名 此法用来新建一个批处理文件 举例:echo dir>d:\new.bat执行此命令后会在D盘根目录下新建一个名为new.bat的批处理文件,且在该文件中的内容为“dir”
>>echo 文件内容>>文件名 此法用来向自动批处理文件中追加内容 多和“echo 文件内容>文件名”联合使用 举例:echo time>>d:\new.bat (假如在此命令前有“echo dir>d:\new.bat”)则此命令执行后会在如在D盘下名为new.bat文件的内容中追加“time” 如果没有假如的命令,则会在D盘下直接生成一个名为new.bat的文件且内容只有“time”
3.Pasuse :暂停 单独使用将会显示“按任意键继续”信息。也可以这样:echo 提示信息 & pause >nul 则会显示“提示信息”。不会出现“按任意键继续” “puse>nul”可以理解为空提示,因为默认的pause会显示“按任意键继续”
4.errorlevel:常用来判断刚才的命令是否执行成功 格式:echo %errorlevel% 举例:dir
换行写 echo %errorlevel% 则会显示完目录后,在后面跟一个“0”表示执行成功,如果执行出错会高errorlevel为“1”。 思考在举例的命令下不写“echo”,会怎样。
5.title:用来设置批处理执行时DOS窗口显示的标题 格式:title 标题
6.color:用来设置DOS窗口的背景和前景颜。格式:color 背景值 前景值 对于具体的颜值如下:0=黑 1=蓝 2=绿 3=湖蓝 4=红 5=紫 。。。
D=淡紫 E=淡黄 F=亮白 举例:coror 4E 执行后将会在红背景上产生淡黄字 如果只写一个数字则会默认的写的是前景且背景是默认的黑 注意:如果执行“color”(只有此命令,后不跟数值)或者“color EE” 设置相同的颜,用“errorlevel”判断时则会返回“1”,且颜为cmd启动时的颜,一般为“背景黑前景白”
批处理文件注释7.Mode:用来配置系统设备.具体可以参数可以在CMD下输入"MODE/?"来查看,也可以直接在CMD下输入"MODE"参看本机配置 举例:mode con cols=113 lines=15此命令设置DOS窗口大小:15行,113列
8.Goto和标号:标号的名字可以随便起,但是最好是有意义的字符串啦,前加个冒号用来表示这个字符串是标号,goto命令就是根据这个冒号(:)来寻下一步跳到到那里
9.Find:FIND [/V] [/C] [/N] [/I] [/OFF[LINE]] "string" [[drive:][path]filename[ ...]]
/V 显示所有未包含指定字符串的行。 /C仅显示包含字符串的行数。 /N显示行号。
/I 搜索字符串时忽略大小写。 /OFF[LINE] 不要跳过具有脱机属性集的文件
"string" 指定要搜索的文字串 [drive:][path]filename 指定要搜索的文件。
Find常和type命令结合使用
Type [drive:][path]filename | find "string" [>tmpfile] #挑选包含string的行
Type [drive:][path]filename | find /v "string" #剔除文件中包含string的行
Type [drive:][path]filename | find /c #显示文件行数
Type [drive:][path]filename | find "string" [>tmpfile] #挑选包含string的行
Type [drive:][path]filename | find /v "string" #剔除文件中包含string的行
Type [drive:][path]filename | find /c #显示文件行数
和“type”的这种类似连用将去除“find”自带的提示语
举例:@echo off
echo 111 &
echo 222 >&
find "111"
pause
分析:执行后将显示带有“find”的提示语。如果把“find “111” ”换成“find "111"” 将去掉find自带的提示语
10.start 命令:批处理中调用外部程序的命令(该外部程序在新窗口中运行,批处理程序继续往下执行,不理会外部程序的运行状况),但如果不通过start命令而直接运行外部程序则必须等外部程序完成后才能继续执行批处理剩下的命令。 举例:STATRT EXPLORER D:\ 执行后会在新的窗口打开D盘,而且不管D盘是否立即打开,都会直接执行后面的命令。
11.assoc和ftype:
assoc 设置'文件扩展名'关联,关联到'文件类型'
ftype 设置'文件类型'关联,关联到'执行程序和参数' 当你双击一个.txt文件时,并不是根据.txt直接判断用 打开,而是先判断.txt属于 txtfile ‘文件类型’再调用 txtfile 关联的命令行txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1 可以在"文件夹选项"→"文件类型"里修改这2种关联
ftype 设置'文件类型'关联,关联到'执行程序和参数' 当你双击一个.txt文件时,并不是根据.txt直接判断用 打开,而是先判断.txt属于 txtfile ‘文件类型’再调用 txtfile 关联的命令行txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1 可以在"文件夹选项"→"文件类型"里修改这2种关联
assoc #显示所有'文件扩展名'关联
assoc .txt #显示.txt代表的'文件类型',结果显示 .txt=txtfile
assoc .exe #显示.exe代表的'文件类型',结果显示 .exe=exefile
ftype #显示所有'文件类型'关联
ftype exefile #显示exefile类型关联的命令行,结果显示 exefile="%1" %*
assoc .txt #显示.txt代表的'文件类型',结果显示 .txt=txtfile
assoc .exe #显示.exe代表的'文件类型',结果显示 .exe=exefile
ftype #显示所有'文件类型'关联
ftype exefile #显示exefile类型关联的命令行,结果显示 exefile="%1" %*
12.PUSHID和POPD:切换当前目录,一般很少用(dos编程中很有用)
举例:@echo off
c: & cd\ & md mp3 #在 C:\ 建立 mp3 文件夹
举例:@echo off
c: & cd\ & md mp3 #在 C:\ 建立 mp3 文件夹
md d:\mp4 #在 D:\ 建立 mp4 文件夹
cd /d d:\mp4 #更改当前目录为 d:\mp4
pushd c:\mp3 #保存当前目录,并切换当前目录为 c:\mp3
popd #恢复当前目录为刚才保存的 d:\mp4
cd /d d:\mp4 #更改当前目录为 d:\mp4
pushd c:\mp3 #保存当前目录,并切换当前目录为 c:\mp3
popd #恢复当前目录为刚才保存的 d:\mp4
13.Call:>>可以调用一条批处理命令(和直接执行命令效果一样,主要用于变量多级嵌套)
命令嵌套:首先用一条DOS命令生成一个字符串,而这个字符串是另一条DOS命令,用call语句调用字符串将其运行,从而得到最终结果。现举一个变量嵌套的例子。
举例:@echo off
set str1=aaa echo ok bbb
echo 初始字符串:%str1%
echo 生成命令字符串如下:
echo %str1:~4,7%
echo 运行命令字符串生成最终结果为:
call %str1:~4,7%
pause 注意 call调用和无call调用。
>>可以调用一个本文件内的命令段,相当于子程序(命令段以标签:label开头,以命令“goto:eof”结尾)>>调用其它批处理程序 注:参数可以参FOR命令
举例:set aa=123456
set cmdstr=echo %aa%
call %cmdstr%
pause 分析:call调用“%cmdstr%”,显示123456
set cmdstr=echo %aa%
call %cmdstr%
pause 分析:call调用“%cmdstr%”,显示123456
14.SHIFT:更改批处理中可替换参数的位置。格式:SHIFT/n 如果命令的扩展名被启用,SHIFT命令支持/n命令行开关,此命令行用来告诉命令从第n个参数开始转移,n介于
零和八之间 举例:SHIFT/2 意为,从第二个参数开始移位,第0个和第一个参数无影响。即第三个参数移位到第二个参数(%32%),第四个参数移位到第三个参数(%42%),第n+1个参数移位到第n个参数(%n+1n%)
15.IF:有三种基本格式,简要分析如下:
>>IF [NOT] ERRORLEVEL NUMBER COMMAND 对于此种格式理解,因为此种格式是通过ERRORLEVEL来判断命令的返回值,所以这个句子必须放在某一个命令后面。 NUMBER的数字取值范围0~255,此格式一般会多个一起连用来判断多种情况,并且要非常注意在写这种格式时,要把NUMBER大的排列在前,因为判断的条件是ERRORLEVEL返回值大于等于NUMBER的值时,则认为条件成立,改为执行COMMAND 举例:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论