基础格式
@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
运算表达式示例
::'与'一般用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循环,还有一些未记录