Windows bat 学习笔记
文章目录
回显 ECHO 与 @
ECHO
的作用是全局打开/关闭命令行在终端窗口的回显。具体用法为:
ECHO ON //打开指令回显
ECHO OFF //关闭指令回显
ECHO 一段字符串 //在终端显示字符串
ECHO 字符串 >> filename.txt //将一段字符串内容写入另一个文件并保存
@
的作用是,放在一行命令前,强制关闭该命令的回显。不管全局ECHO是开还是关。
注释 REM 与 ::
REM
在Windows 批处理程序中,是行注释(备注)的关键字。在这一行的开头写上REM符号,代表此行为注释行,不执行但是能够回显。
::
与REM略有区别。在::后的字符,在终端不会执行,也不会回显。无论ECHO是否开启,均不会回显,因为解释器不认为此行为有效命令行。
暂停 PAUSE
PAUSE
顾名思义,是暂停的意思。在Windows终端中表现为:“按下任意键继续……”
修改窗口标题 TITLE
TITLE
的作用,就是修改bat运行起来的终端窗口的标题名。具体用法为:
TITLE 想要修改的标题名
修改终端背景与字体颜色 COLOR
COLOR
可以设置默认的控制台前景和背景颜色。
COLOR [attr] //指定控制台输出的颜色属性。
颜色属性由两个十六进制数字指定 – 第一个对应于背景,第二个对应于前景。每个数字可以为以下任何值:
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 浅绿色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色
调整终端窗口大小 MODE
MODE
可以指定终端窗口的宽度和高度,例如:
MODE con cols=50 lines=25 //设置控制台宽度50,高度25
组合命令符 &、&&、||
&
符的作用是连接同一行的多个命令:例如我想在同一行内设置终端窗口的宽高以及颜色,那么我可以这样来写:
MODE con cols=100 lines=75 & COLOR 0A
//在一行中,同时设置窗口宽高与颜色
&&
作用和&
一样,但是略有区别:
使用&连接的多个命令,即使前面的命令执行失败,也不影响后续命令的继续执行。
但是使用&&连接的多个命令,只要前面的命令执行失败,那么后续命令不会继续执行,直接退出程序。
||
或,连接多条命令时,从第一条命令开始顺次执行,直至成功执行为止。(成功执行命令后面的命令不再执行)
注意:组合命令和重定向命令一起使用时注意优先级
管道命令 > 重定向命令 > 组合命令
- 等级 高 | 【管道符】
- 等级 中 > >> 【重定向符】
- 等级 低 & && || 【组合命令符】
程序跳转 GOTO
GOTO
指定标签行跳转。与C语言中的GOTO有类似的作用:
通常在bat使用中,GOTO也能间接地起到‘多行注释’的作用:
GOTO main
这里是注释行1 //此行不会被执行
这里是注释行2 //此行不会被执行
这里是注释行3 //此行不会被执行
:main
command lines...
查找文件内容FIND 与 显示文件内容TYPE
FIND
用法如下:
FIND 一段字符串 文件名
//例如:
FIND tsukimi test.txt
//在文件test.txt中查找含有 tsukimi 的文本行
TYPE
在Windows bat命令中不是‘类型’的意思,是指“打字输入”。具体用法如下:
TYPE 文件名
//例如:
TYPE 1.txt
//将1.txt文本文档中的内容输出到bat当前终端窗口
调用程序 START 和 CALL
START
的作用是打开一个应用程序。
START calc //打开计算器
START notepad //打开记事本
CALL
能够在一个批处理程序中,调用另一个批处理程序。
CALL 和 START 的区别:
CALL 不仅有START的功能,它还可以起到调用一个批处理内部子程序的功能。例如:CALL func1 ...... :func1 子程序内容
变量引导符 %
%
在bat命令中是变量引导符。使用%var%告知解释器var是一个定义好的变量。除此以外,%0到%9还有另外的功能:调用外部参数。
set name=Tsukimi
ECHO %name%
输出重定向符 > 与 >>
>
的作用是将前面的结果,定向到后面的作用域中。例如:
ECHO tsuki2333 > test.txt
//将字符串写入文本文档test中
>>
的作用与>
相同,但是略有区别:
在上面的代码案例中如果已经存在一个test.txt,那么该命令将 覆盖 原有的test.txt文档。但是使用>>符,则不会覆盖原文档,仅仅会在原始文档的末尾 追加 新的字符串。
命令管道符 |
|
命令管道符,作用是连接两条命令,将上一条命令的结果作为下一条命令的输入。示例:
dir c:/ | find "txt"
//在路径C:/ 下查找txt类型的文件
转义符 ^
^
在bat中是转义字符,作用是给<
,>
,&
转义。
另外^
在行末尾还可以起到“续行”作用。例如:
ECHO name:tsukimi^
age:18^
//输出时会自动连起来一行输出
字符串界定符 " "
" "
双引号在bat中是字符串界定符。作用就是把一段含有空格的字符串完整地括起来,以表示这是一整个字符串。具体来说:
//在Windows 命令提示符中,当我们想进入名字含有空格的文件夹时,会出错
//例如:
dir C:\Program Files
//可能会提示“找不到文件”
//但是,通过英文双引号括起来,就能解决此问题:
dir "C:\Program Files"
分隔符 , 与 ;
,
在Windows bat命令中,等效于一个空格space
。
例如:
dir C:/
dir,C:/
//以上两行完全等价
;
分号的作用是,分隔同一个命令作用的多个对象。例如:
dir C:/; D:/; E:/;
//上面的代码是展示C盘,D盘,E盘的文件目录
//在对多个对象执行同一条命令时,若有一个发生错误,则返回错误报告,程序继续往下执行
括号( )
( )
括号在bat中,将多条或者多行语句括起来,视为一整个命令行
FOR循环基础
在Windows bat中,FOR循环是非常实用的语法。具体用法为:
FOR %%i in (...) DO ...... //批处理中
FOR %i in (...) DO ...... //CMD中
windows CMD : for/? 帮助文档
对一组文件中的每一个文件执行某个特定命令。
FOR %variable IN (set) DO command [command-parameters]%variable 指定一个单一字母可替换的参数。 (set) 指定一个或一组文件。可以使用通配符。 command 指定对每个文件执行的命令。 command-parameters 为特定命令指定参数或命令行开关。 在批处理程序中使用 FOR 命令时,指定变量请使用 %%variable 而不要用 %variable。变量名称是区分大小写的,所以 %i 不同于 %I.
如何让windows终端支持中文(不乱码)
首先,第一次编辑一个bat命令行文件时,请使用txt后缀打开,利用文本编辑软件编写完成后,使用另存为功能,将此txt文件保存为bat后缀文件。注意,在另存为的弹窗中,修改文本编码方式为ANSI即可
Windows 批处理进阶教程
活到老,学到老。每一门编程语言入门仅需几天,想要精通掌握几乎要摸爬滚打一辈子。进阶的bat知识参看下方网址:
http://bbs.bathome.net/thread-75-1-1.html