根据名称电子表格将文件按文件名分类到文件夹中

根据名称电子表格将文件按文件名分类到文件夹中

我是一名教师,使用 Canvas-LMS 上课。课程分为几个小组,由各个助教带领,助教负责在各自的部分对学生作业进行评分。Canvas 仅提供下载给定作业的所有学生提交内容的选项。下载的提交内容会自动重命名为单个文件夹,格式为lastName_firstNameRandomNumber_SubmissionTime.pdf

我有另一张包含学生姓名和小组号码的 Excel 电子表格。

我想制作某种脚本来执行以下操作:

  1. 比较Excel表中文件名和学生姓名的部分;
  2. 在 Excel 表中找到组号并将其添加到文件名前面group1_lastName_*.pdf
  3. 将重命名的提交文件排序到group1和等文件夹中group2

答案1

这个问题有三个部分。

  1. 生成新的文件名列表
  2. 批量更新现有文件名
  3. 按组名将文件分成目录

MS Excel 和类似的程序高级重命名器 (AR)A“适用于 Windows 的批处理文件重命名实用程序”可以解决这个问题。虽然我用应收账款根据熟悉程度,该解决方案可以适用于任何其他类似工具。

生成新文件名

  1. 应收账款将允许您生成一个列表现存的来自您的文件的文件名。
  2. 在 Excel 中,可以使用公式转换该列表,以生成您的修改的文件名列表。

批量更新文件名

  1. 应收账款将允许你使用新创建的修改的文件名列表。

按组名分隔目录

  1. 手动:
    您可以在 Windows 资源管理器中按名称排序(它将根据您的首选命名有效地按组名排序)并根据组名手动将文件移动到单独的文件夹中。
  2. 编程方式:
    你可以使用脚本来完成应收账款

示例代码

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)

相关内容