详解bat脚本:语法、常见用法、注意事项、示例

文章目录

    • 前言
    • [1.什么是BAT 脚本](#1.什么是BAT 脚本)
    • 2.基本语法
      • [2.1 注释](#2.1 注释)
      • [2.2 基本命令执行](#2.2 基本命令执行)
    • 3.常用命令详解
    • 4.变量使用
      • [1. 定义变量](#1. 定义变量)
      • [2. 使用变量(要用 `%` 括起来)](#2. 使用变量(要用 % 括起来))
    • 5.流程控制
    • 6.示例
      • [示例 1:自动备份文件](#示例 1:自动备份文件)
      • [示例 2:输入名字并欢迎](#示例 2:输入名字并欢迎)
      • [示例 3:批量重命名文件](#示例 3:批量重命名文件)
      • [示例 4:检测文件是否存在](#示例 4:检测文件是否存在)
    • [7.小技巧 & 注意事项](#7.小技巧 & 注意事项)
      • [错误码与返回值:errorlevel / if errorlevel ...](#错误码与返回值:errorlevel / if errorlevel ...)
    • 8.总结

前言

最近在做环境检查和项目的构建打包时,发现有些麻烦,然后发现用bat脚本很方便,故总结本文,如有错误,请评论区指出


1.什么是BAT 脚本

bat 脚本是指在 Windows 操作系统上运行的批处理(Batch)脚本 ,文件扩展名通常是 .bat (也可能是 .cmd)。

它的作用是把一系列命令行指令按顺序写在一个文本文件里,然后由系统的命令解释器(cmd.exe)一次性执行,从而自动化任务。

  • 文件扩展名.bat(如 start.bat
  • 运行方式:双击运行,或在命令提示符(CMD)中输入脚本名运行。
  • 解释器 :由 Windows 的 cmd.exe 解释执行。
  • 特点:简单、易学、适合基础自动化任务,但功能不如 PowerShell 强大。

2.基本语法

2.1 注释

使用 rem:: 添加注释:

bat 复制代码
rem 这是一个注释(推荐用 rem)
:: 这也是一个注释(更简洁)

2.2 基本命令执行

脚本就是一行一行执行命令:

bat 复制代码
echo Hello World
dir
pause
  • echo:输出文本(也可关闭输出:echo off
  • dir:列出当前目录内容
  • pause:暂停,等待用户按键继续

3.常用命令详解

命令 作用 示例
echo on/off 显示/隐藏命令执行过程 echo off
echo 输出文字或变量值 echo 你好
set var=value 定义变量 set name=张三
set /p var=提示信息 读取用户输入 set /p name=请输入名字:
if 条件判断 if %age% gtr 18 echo 成年
for 循环 for %%i in (*.txt) do echo %%i
goto label 跳转到标签 goto start
:label 定义标签 :start
call 调用其他脚本 call test.bat
exit 退出脚本 exit
cd 进入目录 cd D:\MyProject
mkdir / md 创建目录 mkdir new_folder
del 删除文件 del file.txt
copy 复制文件 copy a.txt b.txt
move 移动文件 move a.txt D:\backup\
start 启动程序或文件 start notepad.exe
timeout 等待一段时间 timeout /t 3

4.变量使用

1. 定义变量

bat 复制代码
set name=Tom
set age=20

2. 使用变量(要用 % 括起来)

bat 复制代码
echo 你的名字是 %name%
echo 你今年 %age% 岁

注意:变量名不能包含特殊符号,命名尽量简洁。


5.流程控制

5.1 if 条件判断

基本语法:
bat 复制代码
if 条件 命令
常用比较:
  • ==:等于(字符串比较)
  • gtr:大于(数字)
  • lss:小于
  • geq:大于等于
  • leq:小于等于
  • neq:不等于
示例:
bat 复制代码
set age=18
if %age% gtr 18 (
    echo 你已成年
) else (
    echo 你还未成年
)

提示 :使用括号做代码块时,if 后必须加 (,且 else 要在同一行或换行后。


5.2 for 循环

遍历文件(注意 %%i):
bat 复制代码
for %%i in (*.txt) do echo 文件名:%%i

在 BAT 脚本中,循环变量用 %%i,在 CMD 命令行中才用 %i

数字循环:
bat 复制代码
for /l %%i in (1,1,5) do echo 第 %%i 次
  • 1:起始值
  • 1:步长
  • 5:结束值

5.3 goto 与标签

bat 复制代码
:start
echo 开始执行
set /p choice=是否继续?(y/n)
if "%choice%" == "y" goto yes
goto end

:yes
echo 正在继续...
goto end

:end
echo 完成
pause

6.示例

示例 1:自动备份文件

bat 复制代码
@echo off
echo 开始备份...
xcopy "D:\文档" "D:\备份\文档" /s /i
echo 备份完成!
pause

示例 2:输入名字并欢迎

bat 复制代码
@echo off
set /p name=请输入你的名字:
echo 欢迎你,%name%!
pause

示例 3:批量重命名文件

bat 复制代码
@echo off
for %%i in (*.jpg) do (
    ren "%%i" "photo_%%i"
)
echo 批量重命名完成!
pause

示例 4:检测文件是否存在

bat 复制代码
if exist "config.txt" (
    echo 配置文件存在
) else (
    echo 配置文件不存在!
)

7.小技巧 & 注意事项

  1. 添加 @echo off 在脚本第一行:隐藏命令显示,让输出更整洁。
  2. 变量用 %变量名% ,不能用 variable
  3. for 循环中变量用 %%i ,不是 %i
  4. 字符串比较必须加引号if "%var%" == "yes",避免空值出错。
  5. 路径中含空格时,用引号包裹"C:\Program Files\app.exe"
  6. 保存时编码为 ANSI 或 UTF-8(带 BOM),避免乱码。

错误码与返回值:errorlevel / if errorlevel ...

做环境检查、构建打包时非常常用:某个命令失败了就停止流程。

bat 复制代码
command_here
if errorlevel 1 echo 命令失败

或:

bat 复制代码
command_here
if %errorlevel% neq 0 exit /b %errorlevel%

exit /b 常用于返回到上一级脚本。


8.总结

  • .bat 为扩展名
  • @echo off 开始整洁输出
  • 变量用 %var%,定义用 set var=value
  • if 条件、for 循环、goto 跳转实现逻辑
  • 常用命令:echo, set, copy, del, start, cd, pause, timeout
  • 适合:文件批量处理、自动运行程序、简单自动化任务
相关推荐
无极低码5 小时前
windows 程连接 Oracle 报 ORA-12541
数据库·windows·oracle
God__is__a__girl5 小时前
Docker Desktop 在 Windows 上启动失败:500 Internal Server Error 完整排查与修复指南
windows·docker·容器
桌面运维家5 小时前
Windows 10音频故障排除:驱动、设备、DirectX修复指南
windows·音视频
盘古工具6 小时前
解锁你的文档:如何安全移除Word打开密码
windows·安全
开开心心就好6 小时前
桌面图标乱了怎么办,一键恢复固定位置工具
运维·服务器·windows·pdf·excel·3dsmax·houdini
2501_939998207 小时前
玩游戏安装什么系统好?游戏专用系统推荐
windows·游戏
liweiweili1268 小时前
Windows server配置定时任务执行exe文件找不到配置文件
windows
网管NO.18 小时前
OpenClaw 完全卸载指南(Windows + WSL2)
网络·人工智能·windows·ubuntu
爱学习的程序媛8 小时前
WSL2:Windows上运行Linux的完整指南
linux·运维·windows·ubuntu·wsl2