# BAT

## Hello World

```bat
@echo off
rem 这个代表注释
rem echo代表输出
echo "Hello World"
rem pause的含义代表 按任意键退出
pause
```

## echo 输出到cmd

```bat
rem 声明编码为utf8
@echo off
chcp 65001
echo "echo命令"
echo.
echo 已经换行，分号可省略
pause 


rem 关闭dos命令提示符
rem echo off
rem 打开dos命令提示符
rem echo on
rem 输出空行
rem echo .
```

## chcp 指定编码

```bat
chcp 65001
```

## color 更改文字颜色

```bat
chcp 65001
@echo off 
echo "颜色"

rem COLOR [attr]

rem 第一个参数为背景色，第二个参数为字体颜色
rem 将背景设置为白色，字体设置为黑色
color 70

pause

rem 0 = 黑色       
rem 1 = 蓝色       
rem 2 = 绿色       
rem 3 = 湖蓝色     
rem 4 = 红色       
rem 5 = 紫色       
rem 6 = 黄色       
rem 7 = 白色       
rem 8 = 灰色
rem 9 = 淡蓝色
rem A = 淡绿色
rem B = 淡浅绿色
rem C = 淡红色
rem D = 淡紫色
rem E = 淡黄色
rem F = 亮白色
```

## title 指定控制台的标题

```bat
rem 设置脚本cmd窗口上的标题

@echo off 
chcp 65001
title 我是标题

pause
```

## 控制窗口大小

```bat
chcp 65001
@echo off
mode con cols=113 lines=25

echo 点击关闭... & pause > nul
```

> 这里设置113列，25行

## 使用注释

```bat
rem 我是注释

:: 双冒号也可以代表注释
:: 注意，单冒号代表goto语句的标号
:: 有效标号：单冒号后跟字母数字开头的字符串，goto语句可以识别
:: 无效标号：但冒号跟以个特殊符号，goto语句无法识别
:: 因为goto语句无法识别，所以，无效标号也可以用作注释
:: 不推荐使用

echo "注释测试"  %我代表行内注释，不常用，不推荐使用%


pause
```

## errorlevel程序返回码

windows没执行一个命令都会返回一个程序返回码：

```bat
rem 程序返回码，每个命令结束都会返回以个返回码
rem 默认返回0， 出错返回1 

chcp 65001
@echo off
echo %errorlevel%
pause
```

## 命令回显

```bat
rem @符号，是代表命令是否回显的符号，格式为: @命令 [{ on|off }]
rem 比如： @echo off 关闭echo命令回显
rem       @echo on 打开echo命令回显
rem 开始时，打开命令回显功能
chcp 65001
@echo on
echo 命令回显测试
pause
@echo off
rem 结束时，关闭命令回显功能

```

## pause

```bat
chcp 65001
@echo off
rem pause 会提示请按任意键继续. . . 

rem 自定义提示语

echo 按任意键关闭脚本程序 & pause > nul

```

## 定义变量与使用变量

```bat
@echo off
set myname=okbase.net
set myage=3
echo %myname% is about %myage% years old
pause
```

算数运算符，需要在set命令后加 /a：

```bat
set var=100
set /a var=200+10
set /a var+=15
echo %var%
```
