windows 批处理自学教程 基础篇

本文详细介绍了Windows批处理命令的基础知识,包括注释、echo命令、goto标签跳转、调用命令、条件判断等核心概念。此外,还深入探讨了文件处理、目录操作、字符串查找等实用技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一: 注释

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; 替代



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

莫言静好、

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

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

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

打赏作者

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

抵扣说明:

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

余额充值