超星作业文件解压和自动命名脚本

点击跳转至代码

简述下这个脚本的由来

我是个学委,总是需要帮老师收作业,就遇到了这些问题:

收作业浪费时间
作业命名不规范
需要清点未交名单

浪费时间在于,收作业是一种枯燥乏味又不需要大脑怎么参与还花时间的重复机械运动,谁都无法容忍把生命花费在这种活动上
作业命名少个空格多个下划线之类的,或者干脆只有姓名,这种问题学委都遇到过吧,狗看了都摇头,像我一开始强迫症,一个个改,后面改不动了,没那个心情了,差别不大直接上交,摆烂

收作业文件方式的变化

· 微信
一开始我是用微信收作业文件的,但这样就需要一直和同学们交际,一两个还好,关键三十几个,耗费时间又耗费精力,有时还会漏掉一两个消息没看到,回去一看微信文件又过期了,好家伙,辞任的心都有了

· 宿舍长
让宿舍长收吧,工作分担到了宿舍长身上,轻松了一点,但变化不大,有时还是得一个个催,文件还是一个个收

· **通
收到好心同学建议,直接在**通开门课,发个作业,大大提高工作效率,截止时间到了打开课程收作业就行,缺点是还是得一个一个收
啊你问老师为什么不直接用**通收作业? “啊老师我不会用呢”
我直接面容扭曲

· **通+script
最后这个script诞生了。**通可以直接把作业打包成压缩包,但每个同学的作业又是一个压缩包,还带有一些**通的数据文件,解压后还得接着解压,删除文件。接着就是规范命名,清点名单。于是我把这些功能写到script里了,直接解放双手
唯一的遗憾是已经大三了,收不了几次作业了,把这个留给有缘人吧

代码

文件分为

自动解压工具.bat
自动命名工具.bat
班级名单.txt

两个bat文件的功能都有文件说明,这里就不再赘述
需要注意的是,文件需要保存为ANSI编码格式,作业文件解压工具.bat需要绑定7z压缩器使用,winRAR的还没开发出来

自动解压工具.bat

@echo off & setlocal enabledelayedexpansion
::名称:学习通作业工具
::功能:帮助学委解压学习通下载的作业包
::用法:本文件与作业压缩包放在同一目录下
::          解压工具变量首次设置好即可;
::          设置完成后双击本文件运行
::版本:v1.3 Beta
::编辑:ZZT   2022.06.09
::
::
::---------------------解压工具变量----------------------+
::解压后删除原压缩包 Y/N
set AUTODEL=Y
::7z压缩器exe路径
set ZIP=D:\7-Zip\7z.exe
::删除含有以下关键词文件,使用正则表达式
set DELETE=其他-其他*,*数学*,*地理*
::---------------------------------------------------------+
echo.
echo ######学习通作业解压工具######
echo.
echo.
echo 检测到zip文件如下:
echo.
for %%i in (*.zip) do (echo  - %%~ni)
echo.
set /p FILENAME=输入zip文件名:

::创建文件夹
if exist %FILENAME% (
rmdir /q /s %FILENAME%
rd /q /s %FILENAME%
)
md %FILENAME%

::解压第一层压缩
%ZIP% x %FILENAME%.zip -o%FILENAME%

::解压第二层压缩并删除压缩包和无关文件
cd %FILENAME%
for %%i in (*.zip) do %ZIP% x %%i & del %%i
for %%i in (%DELETE%) do del %%i

cd ..
if %AUTODEL%!=Y del %FILENAME%.zip

echo.
echo 解压完成!
echo.

pause > nul

自动命名工具.bat

@echo off & setlocal enabledelayedexpansion
::名称:自动命名工具
::功能:对班级Coursework进行自动格式化命名、输出未交名单
::用法:本文件与需命名文件放在同一目录下,配合 班级名单.txt 使用;
::          命名工具变量和命名格式按需求修改;
::          设置完成后双击本文件运行
::版本:v1.2 Beta
::编辑:ZETTA  2022.06.08
::
::-------------------命名工具变量------------------------+
::IDNUM表示取学号的位数,0为全部,-3为学号后三位
set IDNUM=-3
set CLASS=19计算机x班
set COURSE=课程名称
set SUFFIX=第x次Coursework
set list=班级名单.txt
set dlist=未交名单.txt
::---------------------------------------------------------+
set TAG=N
set NAME=xxx
set LIST=%list%
set DLIST=%dlist%

echo.
echo.
echo ####自动命名工具####
echo.
echo.
::script所在目录是否存在班级名单
if not exist %LIST% (
echo 找不到 %LIST% !
echo 命名失败!
goto end
) 

echo. > %DLIST%
::获取班级名单里的ID和NAME
for /f "tokens=1-2" %%i in (%LIST%) do (
set NAME=%%i
set ID=%%j
::-----------------------------文件命名格式---------------------------------+
set PATTERN=!ID:~%IDNUM%! !CLASS! !NAME! !COURSE!!SUFFIX!
::---------------------------------------------------------------------------+
if exist *!NAME!* (
for %%a in (*!NAME!*) do (
echo %%~na%%~xa
echo 重命名为
echo !PATTERN!%%~xa
ren "%%a" "!PATTERN!%%~xa"
echo.
)
) else (
echo !NAME!没有交Coursework
echo.
echo !NAME! !ID! >> %DLIST%
set TAG=Y
)
)

echo.
echo ######命名完成######
echo.


if !TAG!==N (
echo ######无未交名单######
echo.
del 未交名单.txt
) else (
echo ######未交名单######
echo.
for /f %%i in (%DLIST%) do echo %%i
echo.
echo ##################
echo.
)

echo.
echo OK!
echo.

:end
pause > nul

班级名单.txt

学号 姓名
333 张三 
444 李四 

结尾

代码已上传gitee:https://gitee.com/z-zetta/script-to-collate-file

这脚本用了一天多时间写出来,可能有些bug,功能也不是很全,如果有错误和疑问,欢迎提出,如果有人用的话也可以进行改善

在此感谢所有写blog的人,帮助提供知识和经验

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值