文章目录
一、什么是批处理脚本?二、开发环境准备三、基础语法详解1. 基本结构2. 变量操作3. 流程控制if条件判断for循环
4. 函数定义
四、实战案例案例1:自动备份工具案例2:批量重命名工具案例3:智能系统清理工具案例4:网络诊断工具包案例5:自动化办公助手案例6:智能定时关机程序案例7:安全监控脚本案例8:智能软件安装器
案例说明五、调试技巧六、进阶学习建议七、注意事项
一、什么是批处理脚本?
Windows批处理脚本(.bat)是基于CMD命令解释器的自动化脚本,通过将多个DOS命令按逻辑组合成文本文件(扩展名为.bat或.cmd),实现自动化操作。它常用于:
批量文件处理系统维护任务软件自动安装定时任务调度
优势:无需额外环境、执行快速、学习成本低
二、开发环境准备
新建文本文件,重命名为demo.bat推荐编辑器:
Notepad++VS Code(安装Batch插件)Sublime Text
三、基础语法详解
1. 基本结构
@echo off
REM 这是注释
echo Hello World!
pause
@echo off:关闭命令回显REM 或 :::添加注释pause:暂停等待按键
2. 变量操作
set var=CSDN
set /a num=1+2
echo %var% %num%
注意:
变量赋值等号两边不能有空格数学运算需使用/a参数
3. 流程控制
if条件判断
if exist "test.txt" (
echo 文件存在
) else (
echo 文件不存在
)
for循环
for %%i in (*.txt) do (
echo 正在处理:%%i
)
4. 函数定义
call :sayHello "程序员"
exit /b
:sayHello
echo Hello %~1!
goto :eof
四、实战案例
案例1:自动备份工具
@echo off
set backup_dir=D:\Backup_%date:~0,4%%date:~5,2%%date:~8,2%
if not exist "%backup_dir%" mkdir "%backup_dir%"
xcopy C:\重要资料\* %backup_dir% /s /e /h
echo 备份完成!备份位置:%backup_dir%
pause
案例2:批量重命名工具
@echo off
setlocal enabledelayedexpansion
set count=1
for %%f in (*.jpg) do (
ren "%%f" "vacation_!count!.jpg"
set /a count+=1
)
echo 已重命名%count%个文件
pause
案例3:智能系统清理工具
@echo off
title 系统清理大师
color 0A
echo 正在清理临时文件...
del /f /s /q %temp%\*.*
del /f /q C:\Windows\Prefetch\*.*
echo 正在清理回收站...
rd /s /q %systemdrive%\$Recycle.Bin
echo 正在清理浏览器缓存...
del /f /s /q "%userprofile%\AppData\Local\Google\Chrome\User Data\Default\Cache\*.*"
echo 清理完成!释放空间统计:
dir %temp% /s | find "File(s)"
pause
案例4:网络诊断工具包
@echo off
set servers=www.baidu.com 8.8.8.8 192.168.1.1
:menu
cls
echo [1] 网络连通性测试
echo [2] 路由追踪
echo [3] 查看本机IP
echo [4] 退出
set /p choice=请选择操作:
if "%choice%"=="1" goto pingtest
if "%choice%"=="2" goto traceroute
if "%choice%"=="3" goto showip
if "%choice%"=="4" exit
:pingtest
for %%s in (%servers%) do (
echo 正在ping %%s ...
ping -n 2 %%s
)
pause
goto menu
:traceroute
set /p target=输入追踪地址:
tracert %target%
pause
goto menu
:showip
ipconfig | findstr IPv4
pause
goto menu
案例5:自动化办公助手
@echo off
setlocal enabledelayedexpansion
echo 正在生成日报...
set reportname=日报_%date:~0,4%%date:~5,2%%date:~8,2%.docx
echo 统计文件数量...
dir /b D:\项目资料\*.xlsx > filelist.txt
set count=0
for /f %%i in (filelist.txt) do set /a count+=1
echo 创建日报文档...
echo 日期:%date% %time% > %reportname%
echo 处理文件数量:%count% >> %reportname%
type report_template.txt >> %reportname%
start winword.exe %reportname%
del filelist.txt
echo 日报生成完成!
案例6:智能定时关机程序
@echo off
choice /t 30 /d y /n >nul
if errorlevel 2 (
echo 用户取消关机
pause
exit
)
echo 系统将在30分钟后关机...
shutdown -s -t 1800 -c "自动关机程序已启动"
:countdown
for /l %%i in (1800,-10,0) do (
set /a minutes=%%i/60
set /a seconds=%%i%%60
title 剩余时间:!minutes!分!seconds!秒
timeout /t 10 >nul
)
案例7:安全监控脚本
@echo off
set logfile=SystemMonitor_%date:~0,4%%date:~5,2%%date:~8,2%.log
:monitor
cls
echo 实时监控(每60秒刷新) >> %logfile%
echo [%time%] 系统状态: >> %logfile%
tasklist | findstr /i "chrome.exe" >> %logfile%
wmic cpu get loadpercentage | findstr /v "LoadPercentage" >> %logfile%
netstat -ano | findstr :80 >> %logfile%
echo --------------------------------- >> %logfile%
timeout /t 60 >nul
goto monitor
案例8:智能软件安装器
@echo off
set software=Notepad++ VSCode WinRAR
echo 正在初始化安装环境...
mkdir C:\AutoInstall 2>nul
:download
for %%s in (%software%) do (
if not exist "C:\AutoInstall\%%s.exe" (
echo 正在下载%%s...
curl -o "C:\AutoInstall\%%s.exe" "https://install.server/%%s_latest.exe"
)
)
:install
start /wait C:\AutoInstall\Notepad++.exe /S
start /wait C:\AutoInstall\VSCode.exe /silent
start /wait C:\AutoInstall\WinRAR.exe /s
echo 所有软件安装完成!
del /q C:\AutoInstall\*.exe
案例说明
案例名称技术要点应用场景系统清理工具多目录操作、系统路径变量定期维护网络诊断工具包交互式菜单、网络命令组合故障排查自动化办公助手文件统计、文档自动生成日常办公智能定时关机倒计时显示、异常中断处理能耗管理安全监控脚本实时日志记录、系统资源监控服务器维护软件安装器静默安装参数、自动化下载批量部署
注意事项:
涉及系统操作时建议先测试定时关机案例中的choice命令需Win7+系统支持下载脚本需配置正确的下载链接监控脚本建议使用管理员权限运行
五、调试技巧
使用echo输出中间变量添加pause定位错误位置在CMD中直接运行命令测试使用@echo on查看执行过程
六、进阶学习建议
掌握findstr文本搜索学习reg操作注册表研究wmic系统信息查询了解taskkill进程管理
七、注意事项
中文乱码问题:保存文件时使用ANSI编码权限问题:右键选择"以管理员身份运行"路径处理:使用双引号包裹含空格的路径变量延迟扩展:使用!var!代替%var%