Windows 批处理(Batch Script)是一种用于在 Windows 操作系统上自动执行命令的脚本语言。它基于 Windows 命令提示符(cmd.exe)并使用 .bat
或 .cmd
文件格式。
一、批处理基础
1. 创建批处理文件
批处理脚本本质上是一组按顺序执行的 Windows 命令,创建步骤如下:
- 打开记事本,输入批处理命令。
- 以
.bat
(或.cmd
)为后缀保存,文件类型选择“所有文件”。 - 双击运行该文件。
2. 基本语法
(1)echo 输出
echo Hello, World!
echo
命令用于在终端打印文本。@echo off
用于关闭命令行回显(避免显示每条命令)。echo.
输出一个空行。
(2)注释
REM 这是一个注释
:: 这也是一个注释(不推荐用于多行注释)
REM
或::
用于添加注释。
(3)变量
set name=John
echo %name%
set 变量名=值
定义变量(等号两侧不能有空格)。- 使用
%变量名%
访问变量。
(4)用户输入
@echo off
set /p name=请输入您的姓名:
echo 你好,%name%!
set /p 变量=提示信息
用于接受用户输入。
(5)环境变量
echo %username% :: 当前用户
echo %cd% :: 当前目录
echo %time% :: 当前时间
echo %date% :: 当前日期
二、控制结构
1. 条件判断
(1)IF 语句
@echo off
set /p age=请输入你的年龄:
if %age% GEQ 18 (echo 你是成年人。
) else (echo 你是未成年人。
)
IF 条件 (命令)
进行条件判断。GEQ
(大于等于),LEQ
(小于等于),EQU
(等于)。
(2)IF EXIST 文件判断
if exist myfile.txt echo 文件存在。
if not exist myfile.txt echo 文件不存在。
2. 循环
(1)for 遍历文件
for %%i in (*.txt) do echo %%i
- 遍历当前目录下的所有
.txt
文件并打印名称。
(2)for /L 计数循环
for /L %%i in (1,1,5) do echo %%i
for /L %%变量 in (起始,步长,结束) do (命令)
实现循环。
三、文件和目录操作
1. 创建目录
mkdir myfolder
2. 删除目录
rmdir /s /q myfolder
/s
递归删除文件夹及其内容。/q
静默模式(不提示确认)。
3. 复制文件
copy source.txt destination.txt
4. 移动文件
move old.txt new.txt
5. 删除文件
del /f /q myfile.txt
/f
强制删除只读文件。/q
静默删除。
四、实用示例
1. 备份文件
@echo off
set datetime=%date:~0,10%_%time:~0,2%-%time:~3,2%-%time:~6,2%
xcopy "C:\source\" "D:\backup\%datetime%\" /E /I /Y
echo 备份完成!
%date%
和%time%
提取当前日期时间,创建时间戳文件夹。
2. 关闭 Windows
shutdown -s -t 60
-s
关机,-t
设定 60 秒倒计时。
3. 清理回收站
@echo off
rd /s /q C:\$Recycle.Bin
echo 回收站已清空!
五、批处理进阶
1. 运行其他程序
start notepad.exe
start "" "C:\Program Files\Google\Chrome\Application\chrome.exe"
2. 任务计划
schtasks /create /tn "MyTask" /tr "C:\script.bat" /sc daily /st 08:00
schtasks
用于创建定时任务,设定每天 08:00 运行script.bat
。
3. 运行管理员权限
在 .bat
文件开头加入:
@echo off
:: 检测是否以管理员运行
net session >nul 2>&1
if %errorlevel% neq 0 (echo 需要管理员权限!exit /b
)
六、总结
Windows 批处理脚本可以自动化文件管理、系统维护等任务。掌握 echo
、if
、for
、set
等关键命令,能提高效率。如果需要更强的功能,可以结合 PowerShell 或 Python 进行更复杂的自动化操作。
你打算用批处理做什么?