日常办公里,有一种工作看起来很简单,真正做起来却非常消耗耐心:给班级建文件夹,给订单号建目录,给项目文档建归档文件夹。如果数量只有十个八个,手动右键“新建文件夹”重命名还能接受;一旦到了上百个、上千个,这种重复操作就会变成纯粹的体力活。本文要解决的问题非常具体:如何把 Excel 表格里的行列内容作为文件夹名称,批量生成文件夹,减少手动操作带来的重复劳动和时间损耗。
这类需求在行政、财务、人事、教务、档案管理、项目交付等场景中经常出现。比如按“省份-城市”归档客户资料,按“年份-月份”建立报表目录,按“部门-员工姓名”生成人员档案文件夹。数据通常已经维护在 Excel 表格中,那么直接用 Excel 数据去驱动文件夹生成,就是最自然的做法。下面我会完整拆解两种方案:一种是直接在 Excel 中使用 VBA 宏一键完成,另一种是用 Python 脚本读取 Excel 内容后批量创建。两种方案适合不同人群,你可以按自己的环境和习惯选择。
1. 批量生成文件夹的需求场景
先来看几个比较典型的业务场景。
人事部门为新入职员工建立档案目录时,需要按照员工编号和姓名创建几十个文件夹,命名规则通常是“工号-姓名”。财务部门按月归档电子发票和报销单据,需要提前创建“2025年01月”“2025年02月”这样一串月份文件夹。教务人员整理网课资料时,需要按“课程名称-章节”建立教学资源目录。项目经理交付验收材料时,需要按合同编号、子项目名称建立一层层结构清晰的归档目录。
这些场景有一个共同点:文件夹名称已经在表格里,数量大、规则明确、手动操作重复度高。手动创建文件夹最大的问题不是“费鼠标”,而是容易出错。一次性创建上百个文件夹的时候,难免会有漏建、重名、输错字符的问题。等文件夹已经建好再逐个检查,效率反而更低。
用 Excel 作为数据源来批量生成文件夹,好处有三个。第一,数据本身已经结构化,只需要读取指定行列。第二,Excel 自带处理能力,可以用公式和筛选提前清洗数据。第三,生成之前可以预览和核对文件夹名称,避免建完才发现命名规则不合理。这篇文章后面给出的所有方法和代码,都是围绕“用表格内容驱动文件夹生成”这个核心思路展开的。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 方案对比与总体思路
批量生成文件夹最常见的两种实现方式,一种是在 Excel 内通过 VBA 宏完成,另一种是使用 Python 读取 Excel 文件后调用操作系统接口创建目录。
VBA 方案的优点是零依赖。只要电脑上安装了 Office 或者 WPS,就能直接在 Excel 中运行,不需要额外安装运行环境,也不需要写独立脚本文件。宏代码可以绑定到按钮上,以后每次整理目录,打开表格一键执行即可。缺点是 VBA 的调试体验一般,不熟悉代码逻辑的同事后期维护起来会有些吃力。
Python 方案的优点是代码可读性更好,处理大数据量时更稳定,而且可以和筛选、统计、文件复制等操作串联起来。缺点是需要安装 Python 环境,至少还要安装 openpyxl 之类的第三方库,不适合所有办公电脑。下面是两种方案的对比:
| 对比维度 | VBA 宏 | Python 脚本 |
|---|---|---|
| 运行环境 | Excel / WPS 自带 | 需要 Python 和第三方库 |
| 上手难度 | 会复制代码即可 | 需要了解命令行和依赖安装 |
| 批量处理能力 | 适合几千个以内 | 适合大批量、复杂逻辑 |
| 扩展能力 | 一般 | 高,可结合文件复制、日志、Excel 二次处理 |
| 交付给同事使用 | 方便,点按钮即可 | 需要配置环境,相对麻烦 |
无论选哪种方案,整个处理思路是一致的,可以分为三步。第一步,检查 Excel 中目标列的数据,去掉空行、重复值和非法字符。第二步,拼接完整文件夹路径,确定文件夹要生成在哪个根目录下。第三步,遍历表数据,逐个创建文件夹,原数据保持不变。掌握了这个思路,后续扩展成“批量生成后自动复制模板文件”“生成后自动写日志”等需求也只是在第三步上做加法。
3. 环境准备与版本说明
3.1 Excel 环境准备
如果你选择 VBA 方案,需要一台安装了 Microsoft Office 的 Windows 电脑。本文示例以 Office 2016/2019 或 Microsoft 365 常见版本的界面为例,Excel 2013 及更早版本也可以运行,只是菜单名称略有差异。WPS 表格同样支持 VBA 宏,但部分系统需要单独安装 VBA 插件,如果你的 WPS 中“开发工具”选项卡里看不到“Visual Basic”按钮,需要在 WPS 官网下载对应的 VBA 组件。
在开始写宏之前,有一个步骤很容易被忽略:把工作簿另存为“启用宏的工作簿(.xlsm)”格式。普通 .xlsx 文件默认不能保存宏代码,如果直接保存,Excel 会提示“无法保存以下功能:Visual Basic 项目”,或者下次打开时发现代码丢失。建议先把文件另存为 .xlsm,再开始编写代码。在运行宏之前,还需要检查一下宏安全设置。如果打开文件时顶部出现安全警告条,点击“启用内容”即可。如果宏被禁用,常见报错是“由于此工作簿中的宏安全设置,此宏已被禁用”,这类问题在第 7 节会专门说明。
3.2 Python 环境准备
如果你选择 Python 方案,建议使用 Python 3.8 或更高版本。本文需要安装 openpyxl 库来读取 .xlsx 文件,安装命令如下。
bash复制pip install openpyxl
如果你的电脑上同时安装了多个 Python 版本,注意确认 pip 对应的解释器版本,必要时使用 python -m pip install openpyxl。文件读取适合 .xlsx 格式,如果是老式的 .xls 文件,需要先把 Excel 文件另存为 .xlsx,或者安装 xlrd 库来读取。为了减少格式兼容问题,建议统一把表格另存为 .xlsx 后再执行脚本。
4. VBA 实战:按单列内容批量生成文件夹
4.1 准备 Excel 数据
先来看最简单的场景。在 Excel 的 Sheet1 中,A 列存放需要创建的文件夹名称,B 列可以写备注说明。示例数据如下:
| A | B |
|---|---|
| 项目A | 2025年上半年 |
| 项目B | 2025年上半年 |
| 项目C | 2025年下半年 |
| 项目D | 2025年下半年 |
第一行是标题,有效数据从第 2 行开始假设 A1 单元格写“文件夹名称”,B1 写“备注”,这样后面的宏可以从第 2 行开始遍历。如果不想保留标题,也可以从第 1 行开始,只需要修改代码里的起始行号。
4.2 编写 VBA 宏
在 Excel 中按 Alt + F11 打开 VBA 编辑器,在左侧工程资源管理器中右键点击“VBAProject”,选择“插入 > 模块”,然后在弹出的代码窗口中粘贴下面的代码。
vba复制' 文件路径:模块(Module1)中直接编写即可
Sub BatchCreateFolders()
' 定义工作表对象
Dim ws As Worksheet
' 定义单元格对象,用于遍历
Dim cell As Range
' 定义文件夹完整路径
Dim folderPath As String
' 定义根目录路径
Dim basePath As String
' 定义A列最后一行行号
Dim lastRow As Long
' 定义循环变量
Dim i As Long
' 定义创建成功的文件夹数量
Dim createCount As Long
' 指定工作表
Set ws = ThisWorkbook.Worksheets("Sheet1")
' 根目录路径,根据实际情况修改
basePath = "D:\批量文件夹\"
' 获取A列最后一个非空单元格的行号
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
' 初始化计数器
createCount = 0
' 从第2行开始遍历,第1行是标题
For i = 2 To lastRow
' 读取A列单元格内容
folderPath = basePath & ws.Cells(i, 1).Value
' 如果文件夹不存在,则创建
If Dir(folderPath, vbDirectory) = "" Then
MkDir folderPath
createCount = createCount + 1
End If
Next i
' 提示执行结果
MsgBox "共创建 " & createCount & " 个文件夹。"
End Sub
这段代码的逻辑比较容易理解。ThisWorkbook.Worksheets("Sheet1") 指定数据所在的工作表,如果你的工作表名称不是 Sheet1,这里要改成实际名称。ws.Cells(ws.Rows.Count, "A").End(xlUp).Row 是很经典的一行代码,作用相当于在 A 列最后一个单元格按 Ctrl + 向上方向键,找到最后一条有数据的行号。Dir(folderPath, vbDirectory) 用来判断文件夹是否已经存在,如果路径不存在,Dir 返回空字符串。MkDir 是 VBA 中创建文件夹的命令,括号后面的路径就是完整的磁盘路径。
这段代码有几个需要注意的细节。第一,basePath 末尾一定要带反斜杠 \,否则最终拼出来的路径会变成 D:\批量文件夹项目A,文件夹会跑到上一级目录中。第二,如果单元格中有空格、空字符串或者不可见字符,可能导致文件夹路径拼接异常,最好先用 TRIM 函数把数据清洗一遍。第三,MkDir 只能创建一层目录,如果要创建的路径包含多层不存在的父目录,会直接提示“路径未找到”。多层目录如何处理,第 5 节会单独说明。
4.3 运行与验证
在 VBA 编辑器中按 F5 执行宏,或者返回 Excel,点击“开发工具 > 宏”,选择 BatchCreateFolders 后点击“运行”。执行完后会弹出消息框,显示创建成功的文件夹数量。打开根目录 D:\批量文件夹,可以看到“项目A”“项目B”“项目C”“项目D”四个文件夹都已经生成。
如果只想创建当前工作表指定范围内的数据,例如 A2 到 A10,可以把循环改成 For i = 2 To 10。如果 A 列中某些行内容为空,也可以在循环开头加一行判断:
vba复制If Trim(ws.Cells(i, 1).Value) = "" Then Exit For
实际使用中,尽量避免在大量数据的中间留空行,因为 End(xlUp) 会以第一个空行结束查找。如果数据区域里有空行,建议先对数据列做一次筛选或者排序,确保数据连续。
5. VBA 进阶:按行列组合生成多级文件夹
5.1 业务场景与规则设计
单列生成文件夹只能解决最基础的需求。现实中更常见的情况是,文件夹本身要按两级或三级结构组织。比如设备档案要按照“部门-设备类型-设备编号”建立目录,培训资料要按照“年份-讲师-课程名”建立目录。这些目录如果全部手动创建,操作量会成倍增长。
设计规则是:A 列作为第一级目录名,B 列作为第二级目录名,完整路径为“根目录 \ A列值 \ B列值”。运行时需要先确保第一级目录存在,才能在它下面创建第二级目录。VBA 的 MkDir 命令不支持一次性创建多级目录,直接写 MkDir "D:\根目录\一级\二级" 会报错。所以需要做一次目录层级检查。
5.2 多列读取与递归创建目录
下面是支持“一级目录 + 二级目录”完整路径创建的代码。代码里增加了一个自定义过程,用来逐级补建父级目录。
vba复制' 文件路径:模块(Module1)中与主过程放在一起
Sub BatchCreateMultiLevelFolders()
Dim ws As Worksheet
Dim lastRow As Long
Dim i As Long
Dim basePath As String
Dim fullPath As String
Dim createCount As Long
Set ws = ThisWorkbook.Worksheets("Sheet1")
basePath = "D:\批量文件夹\"
lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
createCount = 0
For i = 2 To lastRow
' 拼接完整路径:根目录\一级目录\二级目录
fullPath = basePath & ws.Cells(i, 1).Value & "\" & ws.Cells(i, 2).Value
' 调用自定义过程,确保父级目录以及目标目录都存在
EnsureFolder fullPath
createCount = createCount + 1
Next i
MsgBox "共创建 " & createCount & " 个第二级文件夹。"
End Sub
' 逐级检查目录是否存在的自定义过程
Sub EnsureFolder(ByVal targetPath As String)
Dim parentPath As String
Dim pos As Long
' 从右往左找到第一个反斜杠的位置
pos = InStrRev(targetPath, "\")
If pos > 0 Then
' 取父级路径,例如 D:\根目录\一级目录
parentPath = Left(targetPath, pos - 1)
' 如果父级路径中仍然包含分隔符并且父目录不存在,先递归创建父目录
If InStr(parentPath, "\") > 0 And Dir(parentPath, vbDirectory) = "" Then
EnsureFolder parentPath
End If
End If
' 创建当前目录
If Dir(targetPath, vbDirectory) = "" Then
MkDir targetPath
End If
End Sub
其中 EnsureFolder 过程是整个多级创建逻辑的关键。它先从完整路径末尾往回找到最后一个反斜杠,得到父级路径。如果父级路径还没有创建,就递归调用自身,先把父级路径创建好,然后再创建当前路径。比如完整路径是 D:\批量文件夹\技术部\设备档案,第一次调用时发现 D:\批量文件夹\技术部 不存在,于是先调用 EnsureFolder "D:\批量文件夹\技术部";第二次递归中继续往前找,发现 D:\批量文件夹 存在,直接创建 技术部,返回后再创建 设备档案。这样就避免了 MkDir 无法创建多级目录的问题。
如果业务需要三层甚至更多层级,只需要在循环拼接路径时把 A 列、B 列、C 列的值都拼进去,EnsureFolder 过程可以继续复用。实际运行前建议先在数据表旁边加一列辅助列,用公式 =A2&"\"&B2 预览拼接后的路径,确认命名规则没有错误再执行宏。
5.3 运行效果验证
假设 Sheet1 中 A 列存放“部门名称”,B 列存放“项目编号”,数据如下:
| A | B |
|---|---|
| 技术部 | PRJ-001 |
| 技术部 | PRJ-002 |
| 市场部 | PRJ-003 |
运行 BatchCreateMultiLevelFolders 后,会在根目录下先创建“技术部”“市场部”两个一级目录,再在“技术部”下创建 PRJ-001 和 PRJ-002,在“市场部”下创建 PRJ-003。重复运行宏不会报错,因为 EnsureFolder 中做了 Dir 存在性判断,已经存在的目录不会重复创建。
6. Python 方式批量生成文件夹(适合大数据量)
6.1 安装依赖与脚本结构
如果不想依赖 Excel 宏,或者需要把文件夹生成过程嵌入到更大的自动化流程中,Python 是更好的选择。先创建一个工作目录,例如 D:\folder_script,把 Excel 文件放到这个目录下,再创建 Python 脚本文件 batch_create_folders.py。
读取 .xlsx 文件需要 openpyxl 库,安装命令在第 3.2 节已经给出。如果脚本运行后提示 ModuleNotFoundError: No module named 'openpyxl',说明没有安装成功,需要重新检查 pip 环境。
6.2 单列批量生成代码
下面是一段完整的 Python 脚本,功能与第 4 节的 VBA 宏一致:读取 Excel A 列的文件夹名称,在根目录下批量创建文件夹。
python复制# -*- coding: utf-8 -*-
# 文件路径:D:\folder_script\batch_create_folders.py
import os
from openpyxl import load_workbook
# 根目录路径
base_path = r"D:\批量文件夹"
# 读取 Excel 文件
wb = load_workbook(r"D:\folder_script\文件夹清单.xlsx")
ws = wb["Sheet1"]
# 确保根目录存在,exist_ok=True 表示已存在时不报错
os.makedirs(base_path, exist_ok=True)
# 从第2行开始读取,第1行是标题;values_only=True 表示直接读取单元格的值
for row in ws.iter_rows(min_row=2, values_only=True):
folder_name = str(row[0]).strip() if row[0] else ""
# 跳过空行
if not folder_name:
continue
# 拼接完整路径
folder_path = os.path.join(base_path, folder_name)
# 创建文件夹,exist_ok=True 表示已存在时不报错
os.makedirs(folder_path, exist_ok=True)
print("已创建: " + folder_path)
print("全部文件夹处理完成。")
与 VBA 宏相比,Python 脚本的容错能力更强。os.makedirs 可以自动创建多级目录,不需要像 VBA 那样递归处理父级目录。exist_ok=True 参数表示目录已经存在时不触发异常,重复执行脚本也安全。values_only=True 是 openpyxl 中迭代行的常用参数,返回的是每行单元格的值元组,比手工用 cell.value 逐格读取更简洁。
如果把上面代码中的 min_row=2 改成 min_row=1,且 Excel 第一行没有标题,则可以从第一行开始读取。脚本执行时会在命令行打印每一行创建的路径,方便核对。
6.3 多列组合生成多级文件夹
Python 创建多级目录比 VBA 简单得多,因为 os.makedirs 支持一次性创建整条路径上的多级目录。下面是根据 A 列和 B 列内容生成两级目录的代码片段。
python复制# -*- coding: utf-8 -*-
# 文件路径:D:\folder_script\batch_create_multi_folders.py
import os
from openpyxl import load_workbook
base_path = r"D:\批量文件夹"
wb = load_workbook(r"D:\folder_script\文件夹清单.xlsx")
ws = wb["Sheet1"]
os.makedirs(base_path, exist_ok=True)
for row in ws.iter_rows(min_row=2, values_only=True):
# 同时读取 A 列和 B 列
first_level = str(row[0]).strip() if row[0] else ""
second_level = str(row[1]).strip() if row[1] else ""
# 任一级别为空则跳过
if not first_level or not second_level:
continue
# 拼接 根目录/一级目录/二级目录
folder_path = os.path.join(base_path, first_level, second_level)
os.makedirs(folder_path, exist_ok=True)
print("已创建: " + folder_path)
print("多级文件夹创建完成。")
这段代码在执行时会一次性创建多级目录。例如 D:\批量文件夹\技术部\PRJ-001,脚本会先确保根目录存在,再创建“技术部”,再创建“PRJ-001”。可以看出来,同样的功能在 Python 中的实现比 VBA 简洁不少。
6.4 文件名合法字符清洗
Windows 系统对文件夹名称有一些硬性限制,下面这些字符不能出现在名称中:
code复制\ / : * ? " < > |
在从 Excel 读取数据时,如果原始数据包含这些字符,比如订单名称写成了“500/300 订单”,创建文件夹时会直接报错。为了让脚本更健壮,建议在创建前做一次清洗。可以加一个简单函数:
python复制import re
def sanitize_folder_name(name: str) -> str:
"""替换 Windows 文件名中的非法字符"""
invalid_chars = r'[\\/:*?"<>|\r\n]+'
return re.sub(invalid_chars, "_", name)
在循环内创建文件夹之前,用 folder_name = sanitize_folder_name(folder_name) 对名称做清洗。替换成下划线可以保留原始名称的可读性。这个函数同样适用于处理 VBA 场景里的特殊字符,只是在 Excel 中更稳妥的做法是先用查找替换功能把 A 列中的 \ / : * ? " < > | 清理干净,再执行宏。
7. 常见问题与排查清单
批量生成文件夹的过程中,遇到的问题通常集中在宏环境、路径格式、数据内容三个方面。我把高频问题整理成表格,再逐个展开说明。
| 问题现象 | 常见原因 | 解决思路 |
|---|---|---|
| 打开工作簿时看不到宏代码 | 文件保存为 .xlsx,未启用宏 | 另存为 .xlsm 启用宏格式 |
| 运行宏提示“宏被禁用” | Excel 宏安全设置或文件来源不受信任 | 确认文件来源可信任后启用内容或在受信任位置打开 |
| 提示“路径未找到” | MkDir 目标路径存在不存在的父目录 | 使用递归创建父目录,或改用 Python |
| 提示“权限不足”或“访问被拒绝” | 目标磁盘无写入权限,或文件夹被占用 | 更换普通用户目录,先关闭文件资源管理器中的目标窗口 |
| 文件夹名称变成乱七八糟的数字 | Excel 将长数字格式化为科学计数法 | 将单元格设置为文本格式,或使用 Text() 函数 |
| 名称包含 `\ / : * ? " < > | ` 时报错 | 系统非法字符 |
| 创建成功后找不到文件夹 | 根目录路径拼写错误或 basePath 缺少末尾反斜杠 | 检查 basePath,创建前打印完整路径 |
“宏被禁用”的细节值得多说一句。当你从网上下载或者同事通过聊天工具发来一个 .xlsm 文件,Excel 通常会因为“文件来源不受信任”提示宏被禁用。此时不要盲目修改宏安全设置。更稳妥的做法是右键文件选择“属性”,在最下方“安全”栏中勾选“解除锁定”,或者把文件复制到本机“受信任位置”后再打开。公司内部如果启用了统一的宏安全策略,务必遵循 IT 部门的合规要求。安全底线是明确脚本来源可靠、在允许范围内操作,而不是为了绕过限制而关闭保护机制。
“Excel 无法打开文件”也是容易被忽略的问题。原因多半是文件名后缀和实际格式不匹配,或者高版本 Office 原本保存为 .xlsx 后又强行改名为 .xlsm。遇到这种情况,建议直接在 Excel 中使用“另存为”选择正确的格式,不要用重命名文件后缀的方式修改格式。
还有一个非常经典的坑:Excel 默认会把超过一定长度或全数字的内容显示成科学计数法,比如工号 12002199 显示为 1.20022E+07。如果直接把这种单元格内容拿去做文件夹名称,生成的文件夹名完全不可读。解决办法是在录入前把单元格格式设置为“文本”,或者用 Text 函数还原:=TEXT(A2,"0")。这一点在生成工号、身份证号、合同编号类文件夹时尤其重要。
8. 最佳实践与工程建议
写这类自动化脚本,不能只追求“能跑通”。下面几个建议,是从实际使用角度总结出来的。
第一,数据清洗要放在脚本逻辑之前。在 Excel 中处理数据时,先用 TRIM 去掉两端空格,用替换功能清理非法字符,用“删除重复项”或 COUNTIF 检查重复名称。文件夹名称如果重复,第二次写入时不会报错,但容易造成归档混乱。可以在 Excel 中加辅助列 =COUNTIF(A:A,A2) 快速找出重复项,把结果大于 1 的行处理之后再进行文件夹生成。
第二,根目录和命名规则要提前规划。文件夹生成容易,后期迁移麻烦。建议先用“年份-类别-编号”这样的规则命名,比如 2025-合同-001,而不是使用含义模糊的“新建文件夹1”“新建文件夹2”。如果目录结构层级比较深,Excel 中最好用公式预览完整路径,再执行宏。
第三,先小范围试点,再全面执行。第一次写好的脚本,建议只保留 3 到 5 条测试数据跑一遍,确认路径、命名、层级结构都正确后,再正式处理完整清单。大批量执行时不要直接改生产数据表,而是复制出一个测试副本,保证原表始终可恢复。
第四,脚本要保留日志。VBA 中可以用 Debug.Print 把创建路径输出到立即窗口,Python 中可以用 logging 记录到文本文件。出现问题时就能快速定位是哪一行数据、哪一段路径出了问题。日常经验是:批量处理超过 500 个文件夹的项目,没有日志等于是闭眼操作。
第五,考虑将脚本封装成可复用工具。VBA 宏可以绑定到一个按钮上,命名为“一键生成文件夹”,以后每次只需要更新 Excel 内容。Python 脚本也可以通过简单封装变成命令行工具,输入 Excel 路径和目标根目录后自动执行。结合热词里出现的“excel处理框架”“excel批量处理php”等方向,你会发现批量生成文件夹只是数据自动化处理的一环,同一套思路还能扩展到批量重命名文件、批量移动文件、按照规则生成归档目录等场景。
9. 继续扩展:从“生成文件夹”到“归档自动化”
批量生成文件夹本身是一个很小的工具型需求,但它往往是更大自动化流程的起点。文件夹生成之后,通常还需要配合其他操作,比如把文件夹对应的文件复制进去,或者在每个文件夹中生成一个说明文档。VBA 中可以使用 FileCopy 复制文件,Python 中可以使用 shutil.copy2,都是直接在现有逻辑上做加法。还有一类扩展是“按汇总结果动态生成目录”,比如先用 SUMIF 对订单金额按客户汇总,只给金额大于某个阈值的客户创建文件夹,这需要先把汇总筛选的结果导入 Sheet 中,再执行批量创建脚本。
如果你发现自己每周都要做类似的重复性归档工作,建议花一点时间把“Excel 数据准备 + 生成脚本 + 结果验证”整理成标准模板。模板固定下来之后,每次只需要替换 Excel 中的数据,不需要重新写代码。这种把重复劳动沉淀为标准模板的思路,比单次解决问题更有价值。
回到最开始的问题:几百个文件夹,手动建确实能建完,但中间产生的遗漏和错误,最后都要花时间补救。用 Excel 内容批量生成文件夹,本质上不是“偷懒”,而是把规则交给脚本,把时间留给更值得做的事。希望这篇文章里的 VBA 和 Python 两种方案,能帮你把这类琐碎任务的执行时间从几小时压缩到几十秒。
