基础格式

@echo off
echo 测试输出 
pause

基础命令

# 代码注释
rem 注释内容
::注释内容

# 关闭开启每一行命令行
@echo off
@echo on(开启)

# 设置窗口标题
title 我是标题

# 设置变量(变量名=值,不要有空格)
set test=请输入 : 使用set进行设置变量,并,等待输入完成再进行下一行的其他命令-----

# 设置用户输入的阻塞变量(/p参数),等待输入完成再进行下一行的其他命令
set /p test=姓名:

# 输出变量
echo 您姓名是%test%  

# 换行命令
echo.

# 新建/写入文件,> 覆盖原内容,>> 在文末添加,
echo 这里是写入的文本(也可以是.bat命令) > 文件名.txt
echo 我是末文添加的 >> 文件名.txt

# 显示文件内容
type 文件名.bat

# 设置窗口颜色,0A,第一个为背景色,第二个为前景色
# 0 = 黑色		8 = 灰色
# 1 = 蓝色		9 =淡蓝色
# 2 = 绿色		A = 淡绿色
# 3 = 浅绿色	B = 淡浅绿色
# 4 = 红色		C = 淡红色
# 5 = 紫色		D = 淡紫色
# 6 = 黄色		E = 淡黄色
# 7 = 白色		F = 亮白色
color 0A

# if判断
:start
set /p number=
if not %number%==1 (
	echo 请输入1
	:: 输入的不是1,则跳回 :start,重新让用户输入
	goto start
) else (
	echo 输入正确
)
pause

# 判断文件是否存在
if not exist d:\test.bat (
	echo @echo off>d:\test.bat
) else (
	del d:\test.bat
)

# 判断变量是否存在
set a=1
if defined a (
	echo 已定义a
) else (
	echo 未定义a
)

# if判断示例
set a=123
set b=abc
set c=12
::/i字符串大小写忽略
if /i %b% equ ABC (
  if %a% geq %c% (
    echo %a%^>=%c%
  ) else (
    echo %a%^<%c%
  )
) else (
  echo %b%不等于ABC
)

# 查看当前系统环境变量
set

# 查看环境变量JAVA_HOME的值(就是if判断)(echo %PATH%)
if defined JAVA_HOME ( echo JAVA_HOME:%JAVA_HOME% ) else ( echo 未定义JAVA_HOME )

# 卡住当前窗口不自动关闭,放到代码最后,命令行中出现”请按任意键继续…”
pause

bat脚本 ECHO 回显追加到上一行_bat脚本 ECHO 回显追加到上一行

运算表达式示例

::'与'一般用if嵌套实现
@echo off
set /p a=
::当a小于10且大于0
if %a% lss 10 if %a% gtr 0 echo 输入的是0-10
pause
::'非'用not可以实现
@echo off
set /p a=
::a不小于10
if not %a% lss 10 ( echo 输入的是不小于10 )
pause
::'或'实现一:使用if嵌套(代码简洁但逻辑不太好理解)
@echo off
set /p a=请输入a:
set /p b=请输入b:
::a小于5或b小于5时
if %a% lss 5 (echo a小于5或b小于5) else (if %b% lss 5 (echo a小于5或b小于5) else (echo a、b都不小于5))
pause
::'或'实现二:使用额外变量标记结果,再判断该变量(逻辑简单但代码多)
@echo off
set /p a=请输入a:
set /p b=请输入b:
::a小于5或b小于5时
set flag=0
if %a% lss 5 set flag=1
if %b% lss 5 set flag=1
if %flag% equ 1 ( echo a小于5或b小于5 ) else ( echo a、b都不小于5 )
pause

数字运算表达式

@echo off
set a=1&set b=6
set c=%a%+%b%
::输出1+6
echo %c%
set d=a+b
::输出a+b
echo %d%
set /a e=a+b
::输出7
echo %e%
pause

for循环

@echo off
::关键字for、in、do必有,括号必有
::分隔符可以是逗号、分号、等号、空格
::输出为A换行1换行B。。。
for %%i in (A,B,C) do echo %%i & echo 1
pause>nul
@echo off
::找出D盘下所有文件
for %%i in (d:\*.*) do echo "%%i"
pause
@echo off
set str=c d e f g h i j k l m n o p q r s t u v w x y z
echo 当前硬盘的分区有:
for %%i in (%str%) do if exist %%i: echo %%i:
pause
@echo off
::找出当前目录下文件名为四个字符的txt文件
for %%i in (????.txt) do echo "%%i"
pause

只记录到for循环,还有一些未记录