一: 注释
1.1 rem 后面的语句不会被执行,但是可以回显
1.2 ::表注释,后面的语句也不会被执行,但是不可以回显
注意:一个:后面接一个字母 表示标签,goto语句可以识别
如果是一个特殊字符或者非字母的符号,不能作为标签,其实也可以作为注释
二:echo 和 @
2.1@放在命令前,将关闭命令回显,无论此时echo是否处于打开状态
打开回显或关闭回显功能:
语法格式:echo[{on|off}]
如果想关闭“ECHOOFF”命令行自身的显示,则需要在该命令行前加上“@”
Echo off 表示:命令执行结果,每一行都不会显示当前的路径
Echoon:表示每一行都要加上路径
Echooff之前不加@
echo off rem aaaa :: bbbb set var=nicky echo %var% set var=belly echo %var% pause C:\Users\nickyzhang\Desktop>echo off nicky belly |
echooff之前加@
nicky belly |
就不会显示C:\Users\nickyzhang\Desktop>echooff
这个
如果是echo on呢 ?
如果不加@:
C:\Users\nickyzhang\Desktop>echo on C:\Users\nickyzhang\Desktop>rem aaaa C:\Users\nickyzhang\Desktop>set var=nicky C:\Users\nickyzhang\Desktop>echo nicky nicky C:\Users\nickyzhang\Desktop>set var=belly C:\Users\nickyzhang\Desktop>echo belly belly C:\Users\nickyzhang\Desktop>pause |
所以@echo off 这一行既隐藏了当前行的路径, 后面的命令也直接显示结果。
2.2 输出提示信息:
echo message
输出空行
echo. 注意:如果echo 后面不能紧跟.号 ,那么.会被输出
@echo off echo. set var=belly echo %var% pause 结果: C:\Users\nickyzhang\Desktop>a.bat
belly |
2.3 ECHO答复语:
格式:ECHO答复语|命令文件名
C:\Users\nickyzhang\Desktop\deploy>echo Y|del /s *.* C:\Users\nickyzhang\Desktop\deploy\*.*, Are you sure (Y/N)? Y C:\Users\nickyzhang\Desktop\deploy\2015年度工作总结模板v1.1.pptx |
2.4建立新文件或增加文件内容
语法:echo content > file or echocontent >> file
2.5 查看错误级别
语法格式:echo %errorlevel%
每个命令运行结束,可以用这个命令行格式查看返回码用于判断刚才的命令是否执行成功
默认值为0,一般命令执行出错会设errorlevel为1
三:title 设置cmd 窗口标题
title 新标题
四:color设置默认的控制台前景和背景颜色
语法格式:color [attribute]
attribute指定控制台输出的颜色属性
颜色属性由两个十六进制数字指定--第一个为背景,第二个则为
前景。每个数字可以为以下任何值之一:
每个数字可以为以下任何值之一: 0=黑色8=灰色1=蓝色9=淡蓝色2=绿色A=淡绿色3=湖蓝色B=淡浅绿色4=红色C=淡红色5=紫色D=淡紫色6=黄色E=淡黄色7=白色F=亮白色 |
如果想修改默认的启动颜色的话,就得修改注册表的默认颜色了。
例如:"color 0f "在黑色上产生亮白色
五:GOTO和:
在批处理中,允许以[:字母]构建标记,然后goto的时候就跳到标记处
@echo off :loop set/avar+=1 echo%var% if %var% leq 3 goto loop pause 结果: 1 2 3 4 |
六: call 调用命令
CALL命令可以在批处理执行过程中调用另一个批处理,当另一个批处理执行完后,再继续执行原来的批处理
语法格式:CALL [drive:][path]filename [batch-parameters]
CALL:labelarguments
调用本文件内命令段,相当于子程序。被调用的命令段以标签:label开头以命令goto:eof结尾。
批处理的参数接受用[%1-n],如果是%0参数%0具有特殊的功能,可以调用批处理自身,以达到批处理本身循环的目的,也可以复制文件自身等等。copy%0d:\wind.bat
七:shift
更改批处理文件中可替换参数的位置。
SHIFT [/n]
如果命令扩展名被启用,SHIFT命令支持/n命令行开关;该命令行开关告诉命令从第n个参数开始移位;n介于零和八之间。例如:
SHIFT /2
会将%3移位到%2,将%4移位到%3,等等;并且不影响%0和%1
八:IF 语句
IF条件判断语句,语法格式如下:
IF [NOT] ERRORLEVELnumber command
IF [NOT] string1==string2command
IF [NOT] EXIST filenamecommand
九: 管道
"<" ">" ">>" 是批处理的三个重定向符号,用于控制数据的输入或者输出,
数据源 ">" 目的地(存在覆盖)
数据源 ">>" 目的地(存在在后面添加)
目的地 "<" 数据源
"|":管道符号,将一个命令的输出进行提取。
十、 Sort 命令 排序
/+n: 指定字符串从第几个字符开始排序
/R: 反序排列
/o : 输出
/rec: 指定能够处理最大字符数,而不是行数,默认4096个字符,最大65535个
[drive1:][path1]filename1: 指定要排序的文件名
sort 1.txt sort /+3 1.txt sort /R /+3 1.txt sort /R /+3 1.txt /o nicky1.txt sort /REC 10000 1.txt 对1.txt 进行排序,另外一种写法 Sort < 1.txt |
十一、find 命令
FIND [/V] [/C] [/N] [/I] [/OFF[LINE]]"string" [[drive:][path]filename[ ...]]
/V:列出不包含指定字符串的行
/C:只列出包含指定字符串的数量
/N:连同行号一起列出来
/I:匹配时忽略大小写
/OFF[LINE]:不跳过具有脱机属性的文件
"string" 指定要搜索的文本字符串
[drive:][path]filename: 文件名
十二、findstr 命令查找字符串,这里的字符串可以是正则表达式
12.1 查找包含指定字符串的行
findstr "string" 1.txt
12.2查找包含指定字符串的行,不区分大小写
findstr /i "string" 1.txt
12.3查找包含指定字符串的行,并输出行号
findstr /n "string" 1.txt
12.4 查找只是包含某个字符的所有文本
findstr /m "string" *.txt
12.5 查找以指定字符开头的行
findstr /b "string" 1.txt
12.6 查找以指定字符结尾的行
findstr /e "string" 1.txt
12.7 查找以指定字符串完全匹配的行
findstr /x "string" 1.txt
12.8 查找不含有指定字符串完全匹配的行
findstr /v "string" 1.txt
12.9 在一个列举了很多文件的地方查找包含某个字符串的文件
Findstr /F:parent.txt "list" ::在parent.txt 文件中查找出包含list字样的文件
12.10 先把要搜索的字符串放到一个文件内,然后通过/g命令读取这个文件,然后再到其他文件去查找这个字符串,如果有多个请换行写,否则会被视为一个,即使中间用空格分割,那么也被认为是一个字符串
findstr /G:2.txt 1.txt
12.11 要在一个文本查找多个字符串,可以用空格分开
findstr "jklk frff" 1.txt
12.12 如果想要查炒jklk frff 这个字符串,而不是当做2个字符串来处理:
findstr /C:"jklk frff" 1.txt
12.13 指定多个目录搜索包含某个字符串的文件
findstr /d:11;22 "12" *.txt
12.14在当前目录或者当前子目录搜索字符串
findstr /s "test" *.txt
12.15匹配纯数字
findstr "^[0-9]*$" 2.txt
12.16匹配纯字母
Findstr "^[a-z]*$" 2.txt
12.17匹配以aaa 开始 bbb结尾的行
findstr "\<aaa" 1.txt
findstr ".*com\>" 1.txt
十三、dir 查看目录
/A: 查看带有指定属性的目录
/S:查看当前目录已经其所有子目录的文件和文件夹
/P:当显示的信息超过一屏时暂停显示,直至按任意键才继续显示.
/W:以横向排列的形式显示文件名和目录名,(不显示文件大小、建立日期和时间)
十四、 文件处理
14.1.删除del删除一个文件或多个文件
语法: del /s /q /f 文件绝对路径
/p: 删除是有提示,等价于Linux rm -i将
/S: 从所有子目录删除文件
/F: 强制删除只读属性的文件
/A: 根据选择的文件的属性来删除文件
14.2 rd 删除一个空目录
rd /q /s d:\nicky\logs
直接删除d:\nicky\logs目录,如果logs目录里面有文件将无法删除
14.3 rmdir删除一个非空目录 (必须指定目录名称)
rmdir /q /s d:\nicky\logs
必须指定目录名称,不能使用通配符
十五、创建目录
MKDIR [drive:]path
MD [drive:]path
路径有空格时,可以用双引号括起来,也可以用 替代