windows 批处理自学教程 基础篇

一: 注释

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

路径有空格时,可以用双引号括起来,也可以用 &nbsp; 替代



第一章批处理基础 第一节常用批处理内部命令简介 1、REM 和:: 2、ECHO 和@ 3、PAUSE 4、ERRORLEVEL 5、TITLE 6、COLOR 7、mode 配置系统设备 8、GOTO 和: 9、FIND 10、START 11、assoc 和ftype 12、pushd 和popd 13、CALL 14、shift 15、IF 16、setlocal 与变量延迟 17、ATTRIB 显示或更改文件属性 第二节常用特殊符号 1、@命令行回显屏蔽符 2、%批处理变量引导符 3、> 重定向符 4、>>重定向符 5、<、>、<& 重定向符 6、|命令管道符 7、^转义字符 8、组合命令 9、& 组合命令 10、||组合命令 11、\"\"字符串界定符 12、, 逗号 13、; 分号 14、() 括号 15、! 感叹号 第二章FOR命令详解 一、基本格式 二、参数/d 仅为目录 三、参数/R 递归(文件名) 四、参数/L 迭代数值范围 五、参数/F 迭代及文件解析 第三章FOR命令中的变量 一、~I- 删除任何引号(\"),扩展%I 二、%~fI- 将%I 扩展到一个完全合格的路径名 三、%~dI- 仅将%I 扩展到一个驱动器号 四、%~pI- 仅将%I 扩展到一个路径 五、%~nI- 仅将%I 扩展到一个文件名 六、%~xI- 仅将%I 扩展到一个文件扩展名 七、%~sI- 扩展的路径只含有短名 八、%~aI- 将%I 扩展到文件的文件属性 九、%~tI- 将%I 扩展到文件的日期/时间 十、%~zI- 将%I 扩展到文件的大小 十一、%~$PATH:I 第四章批处理中的变量 一、系统变量 二、自定义变量 第五章set命令详解 一、用set 命令设置自定义变量 二、用set 命令进行简单计算 三、用set 命令进行字符串处理 1、字符串替换 2、字符串截取 第六章if命令讲解 第一种用法:IF [NOT] ERRORLEVEL number command 第二种用法:IF [NOT] string1==string2 command 第三种用法:IF [NOT] EXIST filename command 第四种用法:IF 增强的用法 第七章DOS编程高级技巧 一、界面设计 二、if…else…条件语句 三、循环语句 四、子程序 五、用ftp 命令实现自动下载 六、用7-ZIP 实现命令行压缩和解压功能 七、调用VBScript 程序 八、将批处理转化为可执行文件 九、时间延迟 1、利用ping 命令延时 2、利用for 命令延时 3、利用vbs 延迟函数,精确度毫秒,误差1000 毫秒内 4、仅用批处理命令实现任意时间延迟,精确度10 毫秒,误差50 毫秒内 十、模拟进度条 十一、特殊字符的输入及应用 十二、随机数(%random%)的应用技巧 十三、变量嵌套与命令嵌套 1、更正了所有的错别字,适当排版,增加条理性。 2、运行改善所有例子,并纠正了一些语法错误。 3、补充了一些不完全的地方。 4、第一章参考了网上许多教程汇编而成。 5、20080229 补充了变量延迟的问题。 6、20080305 修改了参数usebackq 的说明 7、20080310 增加了特殊字符的输入及应用 8、20080311 修改了子程序部分 9、20080313 修改了echo 说明,归纳了9 个应用方法 10、20080320 增加任意时间延迟方法 11、20080321 增加了set 计算中十进制与八进制混淆问题的说明 12、20080325 修正dos 数值计算范围:-2147483648 至2147483647,即-2^31~2^31-1 13、20080326 增加随机数的应用 14、20080327 修改了“if 增强用法”中的defined 语句说明 15、20080402 增加变量嵌套与命令嵌套,重要技巧之一。 正文: 第一章批处理基础 第一节常用批处理内部命令简介 批处理定义:顾名思义,批处理文件是将一系列命令按一定的顺序集合为一个可执行的 文本文件,其扩展名为BAT 或者CMD。这些命令统称批处理命令。 小知识:可以在键盘上按下Ctrl+C 组合键来强行终止一个批处理的执行过程。 了解了大概意思后,我们正式开始学习.先看一个简单的例子! @echo off echo \"欢迎来到非常BAT!\" pause 把上面的3 条命令保存为文件test.bat 或者test.cmd 然后执行, 他就会在屏幕上显示以下二行话: 欢迎来到非常BAT! 请按任意键继续. . . 这就是一个简单批处理文件了,这个批处理文件一共就用了2 条命令\"echo\" 和 \"pause\" 还有一个特殊符号\"@\" 从上面这个简单的批处理中,我们可以发现其实批处理就是运用一些含有特殊意义的符 号和一些完成指定功能的命令组合而成,那么在批处理中有多少这样的特殊符号和功能命令 呢?我们现在就来仔细了解一下一些最常用的! (以下内容来源网络,请各位仔细阅读,好进入下节的实例说明) ====================================================== 批处理的常见命令(未列举的命令还比较多,请查阅帮助信息) 1、REM 和:: 2、ECHO 和@ 3、PAUSE 4、ERRORLEVEL 5、TITLE 6、COLOR 7、mode 配置系统设备 8、GOTO 和: 9、FIND 10、START 11、assoc 和ftype 12、pushd 和popd
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫言静好、

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值