当前位置: 首页 > article >正文

批处理脚本基础知识快速掌握

一、批处理脚本概述
​定义
批处理脚本是一种基于命令行的自动化脚本语言,通过.bat或.cmd文件保存,由Windows系统的cmd.exe解释器执行。
​核心作用
自动化重复性任务(如文件操作、系统配置)
批量处理文件(搜索、复制、删除)
集成命令行工具(如ping、netstat)
简单的系统管理(服务控制、注册表操作)
​执行环境
原生支持:Windows CMD.EXE
PowerShell兼容:可通过&或call调用PowerShell命令
跨平台扩展:WSL(Windows Subsystem for Linux)中可运行Linux命令
​二、批处理基础语法
​脚本结构
batch
:: 注释(以::开头或#开头)
@echo off :: 关闭命令回显
[label] :: 标签(用于跳转)
command :: 执行命令
goto label :: 跳转到标签
exit /b [code] :: 退出脚本(可选返回码)
​命令分隔符
&:顺序执行多个命令
batch
dir & echo 完成
||:条件执行(前命令失败则执行后命令)
batch
net start service || echo 服务启动失败
&&:条件执行(前命令成功则执行后命令)
batch
dir file.txt && type file.txt
​三、常用内置命令
命令 功能 示例
dir 列出目录内容 dir /s /a(递归显示所有文件)
cd/chdir 切换目录 cd C:\Users
copy 复制文件 copy src.txt dest.txt
del/erase 删除文件 del .tmp(删除临时文件)
move 移动或重命名文件 move old.txt new.txt
type 显示文件内容 type log.txt
findstr 文本搜索 findstr “error” log.txt
ping 测试网络连通性 ping www.baidu.com
tasklist 显示进程列表 `tasklist
shutdown 关机/重启 shutdown /s /t 60(60秒后关机)
​四、变量与运算
​变量声明
batch
setlocal enabledelayedexpansion :: 启用延迟变量扩展
set VAR=value :: 定义局部变量
setx VAR=value /M :: 定义环境变量(全局生效)
​特殊变量
%~1:第一个参数
%ERRORLEVEL%:上一条命令的返回码
%DATE%/%TIME%:当前日期时间
%%VAR%%:在循环中引用变量(延迟扩展需!VAR!)
​算术运算
batch
set /a C=A+B :: 加法
set /a D=A-5 :: 减法
set /a E=A
10 :: 乘法
set /a F=A/3 :: 整数除法
​五、条件判断与循环
if语句
batch
if %VAR% == value (
command1
) else (
command2
)
for循环
batch
for %%F in (.txt) do (
echo 处理文件:%%F
)
支持通配符
/?和范围遍历(如1 2 3)
while循环
batch
:loop
command
if condition (
goto loop
)
​六、高级技巧
​错误处理
batch
if %ERRORLEVEL% neq 0 (
echo 错误:%ERRORLEVEL%
exit /b 1
)
​日志记录
batch
command >> log.txt :: 追加输出到日志
command 2>&1 >> log.txt :: 捕获错误流并记录
​参数传递
batch
:: 脚本内接收参数
set ARGS=%*
echo 参数:%ARGS%
​调用外部程序
batch
call python script.py :: 调用Python脚本
​七、批处理 vs PowerShell
特性 批处理脚本 PowerShell
语法简洁性 依赖CMD命令 基于.NET对象模型
跨平台支持 仅Windows 支持Windows/Linux/macOS
复杂操作能力 有限 强大(正则表达式、管道操作)
学习曲线 低(适合快速脚本) 较高(需熟悉PowerShell语法)
​八、注意事项
​路径问题
使用绝对路径避免歧义(如C:\path\to\file)
工具路径未添加时需指定完整路径(如C:\Python39\python.exe script.py)
​权限问题
部分操作需管理员权限(如修改注册表、启动服务)
​测试与调试
逐行测试:echo command查看实际执行的命令
使用pause暂停执行检查中间状态
​九、示例脚本
场景:批量重命名PDF文件(添加日期前缀)

batch
@echo off
setlocal enabledelayedexpansion
set DATE=%date:10,4%%date:4,2%%date:~7,2%
for %%F in (*.pdf) do (
set NEWNAME=!DATE!_%%F
ren “%%F” “!NEWNAME!”
)
echo 重命名完成!


http://www.kler.cn/a/598734.html

相关文章:

  • 【极速版 -- 大模型入门到进阶】快速了解大型语言模型
  • lua实现面向对象(封装/继承/多态)
  • Elasticsearch8.17 集群重启操作
  • Android应用退出后不在任务栏显示
  • Docker和Dify学习笔记
  • 什么是 “超参数” ?
  • ROS多机通信(四)——Ubuntu 网卡 Mesh 模式配置指南
  • 批量删除或修改 PPT 幻灯片页面背景
  • 美图AI增强优化版 | 功能解锁与安全部署指南
  • Redis 基础篇笔记
  • LeetCode146.LRU 缓存(哈希表+双向链表)
  • RabbitMQ 的 Ack 机制是什么?怎么合理使用它?
  • vue 对接 paypal 订阅和支付
  • 【C/C++】二叉树的最大深度(leetcode T104)bfs dfs经典例题 每日一遍
  • CE设备(Customer Edge device,用户边缘设备)
  • RoboVQA
  • Spring Boot整合SSE实现消息推送:跨域问题解决与前后端联调实战
  • A1 PPT 投影
  • 深入探究 JVM 堆的垃圾回收机制(二)— 回收
  • 【AcWing】算法基础课-数学知识