Windows系统原生脚本语言--Batch语言

🔥作者简介: 一个平凡而乐于分享的小比特,中南民族大学通信工程专业研究生,研究方向无线联邦学习

🎬擅长领域:驱动开发,嵌入式软件开发,BSP开发

❄️作者主页:一个平凡而乐于分享的小比特的个人主页

✨收录专栏:自动化脚本语言,本专栏专门讲述一些常用的自动化脚本语言,以方便日常开发

欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖

Windows系统原生脚本语言--Batch语言

一、基础概念

1. 文件类型

  • .bat (Batch File):DOS时代延续至今
  • .cmd (Command File):Windows NT及以后,功能更强大

2. 创建与执行

batch 复制代码
@echo off
REM 这是一个批处理注释
echo Hello World!
pause

二、基本语法结构

1. 注释

bash 复制代码
REM 这是注释
:: 这也是注释(实际是无效标签)

2. 关闭/开启命令回显

batch 复制代码
@echo off      // 关闭当前命令回显
echo on        // 开启命令回显
echo 消息内容  // 显示消息

3. 变量使用

batch 复制代码
SET 变量名=值      // 设置变量
SET 变量名        // 显示变量值
%变量名%          // 使用变量

三、常用命令详解

1. 文件和目录操作

batch 复制代码
DIR               // 列出目录内容
CD /D 路径        // 切换目录(/D可跨驱动器)
MD 目录名         // 创建目录
RD /S /Q 目录名   // 删除目录(/S包含子目录,/Q安静模式)
DEL /F /Q 文件名  // 删除文件
COPY 源 目标      // 复制文件
XCOPY 源 目标 /E /I /Y  // 高级复制(/E包含空目录,/I目标为目录,/Y覆盖确认)
MOVE 源 目标      // 移动文件/目录
REN 原名 新名     // 重命名

2. 文本文件操作

batch 复制代码
TYPE 文件名       // 显示文件内容
ECHO 内容>文件名  // 创建/覆盖文件
ECHO 内容>>文件名 // 追加到文件
FIND "字符串" 文件名  // 查找字符串
FINDSTR "正则" 文件名 // 正则表达式查找
SORT 文件名       // 排序文件内容
MORE 文件名       // 分页显示

3. 系统管理

batch 复制代码
TASKLIST          // 显示进程列表
TASKKILL /PID 进程ID /F  // 结束进程
SHUTDOWN /S /T 0  // 关机
SHUTDOWN /R /T 0  // 重启
REG 命令          // 注册表操作
SCHTASKS          // 计划任务管理

4. 网络相关

batch 复制代码
PING 地址         // 网络连通性测试
IPCONFIG /ALL    // 显示网络配置
NET USE           // 网络共享连接
NETSTAT -AN      // 显示网络连接状态
TRACERT 地址      // 路由追踪

5. 环境控制

batch 复制代码
SETX 变量名 值    // 永久设置环境变量
PATH              // 显示/设置路径
PROMPT $P$G       // 设置提示符
CLS               // 清屏
COLOR 背景前景     // 设置控制台颜色(如 COLOR 0A)
TITLE 标题        // 设置窗口标题

四、控制结构

1. 条件判断(IF)

batch 复制代码
IF [NOT] ERRORLEVEL 数值 命令
IF [NOT] 字符串1==字符串2 命令
IF [NOT] EXIST 文件名 命令
IF DEFINED 变量名 命令

REM 示例:
IF %ERRORLEVEL% NEQ 0 (
    echo 执行失败
) ELSE (
    echo 执行成功
)

2. 循环(FOR)

batch 复制代码
REM 基本循环
FOR %%变量 IN (集合) DO 命令

REM 数字范围循环
FOR /L %%i IN (起始,步长,结束) DO echo %%i

REM 文件遍历
FOR /R 目录 %%i IN (*.txt) DO echo %%i

REM 解析文本
FOR /F "选项" %%i IN (文件) DO echo %%i
FOR /F "delims= tokens=1,2" %%i IN ('命令') DO echo %%i %%j

3. 跳转(GOTO)

batch 复制代码
@echo off
GOTO START

:ERROR_HANDLER
echo 发生错误
exit /b 1

:START
REM 主程序逻辑
IF ERRORLEVEL 1 GOTO ERROR_HANDLER

4. 调用(CALL)

batch 复制代码
REM 调用另一个批处理
CALL 其他脚本.bat

REM 调用标签段
CALL :函数名 参数1 参数2

:函数名
echo 参数1=%1, 参数2=%2
exit /b 0

五、特殊变量和参数

1. 位置参数

batch 复制代码
%0  脚本自身名称
%1-%9  命令行参数
%*  所有参数

REM 示例:myscript.bat arg1 arg2
echo 脚本名:%0
echo 第一个参数:%1
echo 所有参数:%*

2. 环境变量

batch 复制代码
%CD%     当前目录
%DATE%   当前日期
%TIME%   当前时间
%RANDOM% 随机数
%ERRORLEVEL% 上一条命令退出码
%COMPUTERNAME% 计算机名
%USERNAME% 当前用户名
%OS%     操作系统
%PATH%   可执行文件搜索路径

六、实用技巧

1. 错误处理

batch 复制代码
REM 检查命令执行结果
命令
IF %ERRORLEVEL% NEQ 0 (
    echo 错误代码:%ERRORLEVEL%
    exit /b %ERRORLEVEL%
)

REM 忽略错误继续执行
命令 || echo 命令失败,继续执行...

2. 用户交互

batch 复制代码
REM 获取用户输入
SET /P 变量=提示信息:

REM 选择菜单
echo 1. 选项一
echo 2. 选项二
SET /P choice=请选择:
IF "%choice%"=="1" GOTO OPTION1
IF "%choice%"=="2" GOTO OPTION2

3. 日志记录

batch 复制代码
@echo off
SET LOGFILE=script_%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%.log

REM 同时输出到屏幕和日志
命令 | tee -a "%LOGFILE%"

REM 或者
(
    echo 开始时间:%TIME%
    命令1
    命令2
    echo 结束时间:%TIME%
) >> "%LOGFILE%" 2>&1

七、完整示例

1. 备份脚本

batch 复制代码
@echo off
TITLE 文件备份工具
COLOR 0A

REM 设置变量
SET SOURCE_DIR=C:\重要文件
SET BACKUP_DIR=D:\备份
SET DATE_STR=%DATE:~0,4%%DATE:~5,2%%DATE:~8,2%
SET BACKUP_NAME=备份_%DATE_STR%.zip

REM 检查目录
IF NOT EXIST "%SOURCE_DIR%" (
    echo 错误:源目录不存在!
    pause
    exit /b 1
)

MD "%BACKUP_DIR%" 2>nul

REM 创建备份
echo 正在备份 %SOURCE_DIR%...
"C:\Program Files\7-Zip\7z.exe" a -tzip "%BACKUP_DIR%\%BACKUP_NAME%" "%SOURCE_DIR%\*"

IF %ERRORLEVEL% EQU 0 (
    echo 备份成功:%BACKUP_NAME%
) ELSE (
    echo 备份失败!
)

pause

2. 系统清理脚本

batch 复制代码
@echo off
TITLE 系统清理工具
COLOR 0C

echo 正在清理临时文件...
DEL /F /Q /S "%TEMP%\*.*"
DEL /F /Q /S "C:\Windows\Temp\*.*"

echo 正在清理回收站...
RD /S /Q C:\$Recycle.Bin 2>nul

echo 正在清理预读取文件...
DEL /F /Q /S C:\Windows\Prefetch\*.*

echo 清理完成!
timeout /t 3

八、最佳实践

  1. 始终以@echo off开头 - 避免显示执行的命令
  2. 使用注释 - 说明脚本功能
  3. 错误检查 - 检查关键命令的执行结果
  4. 使用变量 - 提高可维护性
  5. 提供帮助 - 使用/?, /help参数显示用法
  6. 退出代码 - 使用exit /b 代码返回适当的退出码
  7. 路径处理 - 使用引号处理含空格的路径
  8. 权限检查 - 需要管理员权限时进行验证

九、调试技巧

batch 复制代码
REM 启用命令回显
echo on

REM 在关键点暂停
pause

REM 显示变量值
set 变量名

REM 使用echo调试
echo [DEBUG] 当前目录:%CD%
echo [DEBUG] 参数1:%1

REM 记录执行过程
开始命令 > debug.log 2>&1

这些是Windows批处理脚本的基础知识和常用命令。实际应用中可以根据需求组合使用这些命令,创建强大的自动化脚本。

相关推荐
weixin_464307632 小时前
windows禁用更新
windows
一个平凡而乐于分享的小比特2 小时前
Linux/Unix系统主流脚本语言--Bash语言
linux·bash·脚本语言
小尧嵌入式2 小时前
CANOpen协议
服务器·网络·c++·windows
一水鉴天11 小时前
整体设计 定稿 之9 最后收束 app.py: 应用项目的结构及其模型和框架 (豆包助手)
服务器·windows·microsoft
不惑_17 小时前
通俗理解卷积神经网络
人工智能·windows·python·深度学习·机器学习
兮动人18 小时前
关于标准处理WIN11系统弃用WMIC的替代解决方案
windows·win11
Angletank19 小时前
SpringBoot用JPA接口实现分页和排序
windows·spring boot·后端
may_一一1 天前
appium安装(windows)
windows·appium
爱潜水的小L1 天前
自学嵌入式day36,mplayer+fifo+exec
网络·windows