我是一名教师,使用 Canvas-LMS 上课。课程分为几个小组,由各个助教带领,助教负责在各自的部分对学生作业进行评分。Canvas 仅提供下载给定作业的所有学生提交内容的选项。下载的提交内容会自动重命名为单个文件夹,格式为lastName_firstNameRandomNumber_SubmissionTime.pdf
。
我有另一张包含学生姓名和小组号码的 Excel 电子表格。
我想制作某种脚本来执行以下操作:
- 比较Excel表中文件名和学生姓名的部分;
- 在 Excel 表中找到组号并将其添加到文件名前面
group1_lastName_*.pdf
; - 将重命名的提交文件排序到
group1
和等文件夹中group2
。
答案1
这个问题有三个部分。
- 生成新的文件名列表
- 批量更新现有文件名
- 按组名将文件分成目录
MS Excel 和类似的程序高级重命名器 (AR)A“适用于 Windows 的批处理文件重命名实用程序”可以解决这个问题。虽然我用应收账款根据熟悉程度,该解决方案可以适用于任何其他类似工具。
生成新文件名
- 应收账款将允许您生成一个列表现存的来自您的文件的文件名。
- 在 Excel 中,可以使用公式转换该列表,以生成您的修改的文件名列表。
批量更新文件名
- 应收账款将允许你使用新创建的修改的文件名列表。
按组名分隔目录
- 手动:
您可以在 Windows 资源管理器中按名称排序(它将根据您的首选命名有效地按组名排序)并根据组名手动将文件移动到单独的文件夹中。 - 编程方式:
你可以使用脚本来完成应收账款
示例代码
Excel 重命名公式
=LET( _oldlist, A2:A200, _namelist, C2:C200, _grouplist, D2:D200,
_name, BYROW(_oldlist, LAMBDA(r, SUBSTITUTE(LEFT(r, FIND("_", r, FIND("_",r)+1)-1),"_",", "))),
_group, BYROW(_name, LAMBDA(n, INDEX(_grouplist, MATCH(n, _namelist, 0)))),
"group_"&_group&"_"&_oldlist)
Excel 重命名公式基于下面的数据表。
旧文件名 | 新文件名 | 名单 | 群组列表 |
---|---|---|---|
Acevedo_Mike_8931_2022-11-08 6.10.pdf | group_9_Acevedo_Mike_8931_2022-11-08 6.10.pdf | 马修斯·拉蒙特 | 10 |
Alexander_Kyra_7746_2022-02-01 23.10.pdf | 组_1_Alexander_Kyra_7746_2022-02-01 23.10.pdf | 霍尔特,玛丽 | 7 |
Alvarez_Wyatt_2136_2022-04-30 19.10.pdf | group_2_Alvarez_Wyatt_2136_2022-04-30 19.10.pdf | 乔恩·汉普顿 | 7 |
高级重命名脚本
function(index, item) {
var dir = item.name.match(/group_\d+/g);
item.newPath = item.path + dir;
}
高级重命名脚本基于文件名格式: group_#_<lName>_<fName>_<rndCode>_<timestamp>.pdf
图片
生成文件名 (1/3)
生成文件名(2/3)
生成文件名(3/3)
更新文件名 (1 / 1)
按组名分隔(1/4)
按组名分隔(2/4)
按组名分隔(3/4)
按组名分隔(4/4)