批处理脚本(.bat
或 .cmd
)是 Windows 系统下一种强大的自动化工具,虽然它语法相对简单,但可以实现许多复杂的功能,以下是一些常见的应用场景:
1. 系统管理与维护
- 磁盘管理:可以实现磁盘清理、磁盘碎片整理等操作。例如,使用
cleanmgr
命令清理系统临时文件,结合参数可以自动化选择要清理的内容:
@echo off
cleanmgr /sagerun:1
echo 磁盘清理已启动
- 服务管理:能够启动、停止、重启系统服务。比如,停止并重新启动
Print Spooler
服务:
@echo off
net stop "Print Spooler"
net start "Print Spooler"
echo 打印服务已重启
- 用户账户管理:可以创建、删除用户账户,修改用户密码等。例如,创建一个新用户并添加到管理员组:
@echo off
net user testuser password /add
net localgroup administrators testuser /add
echo 用户账户已创建并添加到管理员组
2. 文件与目录操作
- 文件批量处理:对大量文件进行复制、移动、重命名、删除等操作。例如,将某个目录下所有
.txt
文件复制到另一个目录:
@echo off
set source=C:\SourceFolder
set destination=C:\DestinationFolder
xcopy %source%\*.txt %destination% /s /y
echo 文件复制完成
- 文件内容搜索与替换:可以在文件中搜索特定的字符串并进行替换。结合
findstr
和其他命令可以实现简单的文本处理:
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('findstr /i /m "oldtext" *.txt') do (
set "file=%%a"
set "content="
for /f "usebackq delims=" %%b in ("!file!") do (
set "line=%%b"
set "line=!line:oldtext=newtext!"
set "content=!content!!line!^
"
)
echo(!content!> "!file!"
)
endlocal
echo 文件内容替换完成
3. 软件安装与配置
- 自动化软件安装:结合软件的静默安装参数,可以实现软件的自动安装。例如,安装 Chrome 浏览器:
@echo off
start /wait "" "chrome_installer.exe" /silent /install
echo Chrome 浏览器已安装
- 软件配置:修改软件的配置文件,以适应不同的使用需求。例如,修改某个应用程序的配置文件中的端口号:
@echo off
set config_file=C:\App\config.ini
set port=8080
powershell -Command "(Get-Content '%config_file%') -replace 'port=[0-9]*', 'port=%port%' | Set-Content '%config_file%'"
echo 软件配置已更新
4. 网络管理
- 网络连接管理:可以创建、删除、修改网络连接,设置 IP 地址、DNS 等。例如,设置静态 IP 地址:
@echo off
netsh interface ip set address name="以太网" static 192.168.1.100 255.255.255.0 192.168.1.1
netsh interface ip set dns name="以太网" static 8.8.8.8
echo 网络连接配置已更新
- 网络监控:通过
ping
、tracert
等命令监控网络状态,将结果记录到日志文件中:
@echo off
set log_file=network_log.txt
:loop
ping -n 1 8.8.8.8 >> %log_file%
timeout /t 60 /nobreak
goto loop
5. 任务调度与自动化流程
- 定时任务:结合 Windows 的任务计划程序,可以实现定时执行批处理脚本。例如,每天凌晨 2 点执行磁盘清理任务:
@echo off
schtasks /create /tn "Disk Cleanup" /tr "C:\Scripts\disk_cleanup.bat" /sc daily /st 02:00
echo 定时任务已创建
- 自动化流程:将多个操作组合在一起,实现复杂的自动化流程。例如,备份数据库、压缩文件、上传到云存储等一系列操作:
@echo off
rem 备份数据库
sqlcmd -S localhost -U sa -P password -Q "BACKUP DATABASE MyDatabase TO DISK = 'C:\Backups\MyDatabase.bak'"
rem 压缩备份文件
"C:\Program Files\7-Zip\7z.exe" a -tzip C:\Backups\MyDatabase.zip C:\Backups\MyDatabase.bak
rem 上传到云存储
aws s3 cp C:\Backups\MyDatabase.zip s3://my-bucket/
echo 自动化备份流程已完成