2023年11月25日发(作者:)

怎样把多个学生的作业的文件名换成对

应的学号和姓名?

1.在某文件夹里面,将原始作业文件(例如)复制黏贴n-1次,n=学生数。

2.去掉所有文件名中的空格(不知为何要这样,上次是不需要的)

在上述文件夹里面建一个文件,输入

@echo off

Setlocal Enabledelayedexpansion

set "str= "

for /f "delims=" %%i in ('dir /b *.*') do (

set "var=%%i" & ren "%%i" "!var:%str%=!")

exit

保存。扩展名改为bat。双击,即可去掉本文件夹中所有文件名中的空格。

3. 去掉所有文件名中的圆括号(不知为何要这样,上次是不需要的)

在上述文件夹里面建一个文件,输入

@Echo Off&SetLocal ENABLEDELAYEDEXPANSION

FOR %%a in (*) do (

set "name=%%a"

set "name=!name:(=!"

set "name=!name:)=!"

ren "%%a" "!name!")

exit

保存。扩展名改为bat。双击,即可去掉所有文件名中的左右圆括号。

4. 把文件夹里面的文件名复制到excel表中。

在文件夹空白处,shift+右击鼠标,选择“在此处打开Powershell窗口(S)”,在Powershell

口中输入命令: dir *.* >文件夹中产生文件,文件名都在此txt文件中。打开excel

点击菜单:”数据”---"自文本”,选择文件,”导入”, “固定宽度”,“下一步”,左键按住分

列线并拖至指定位置(使文件名所在列前面没有空格),“下一步”,shift+左击不需要的列,

变黑,“不导入此列(跳过)(I)”,“完成”。指定文件名列黏贴到现有excel工作表的位置(最好

接近左上角位置的单元格),‘’确定‘’。

4.在学生名单excel 表里面,把学号姓名和文件扩展名字符串连接成新的文件名字符串。

在现有excel工作表的文件名列的右侧依次黏贴学生学号列,姓名列和文件扩展名列(各行

扩展名都相同,例如都是.pdf用字符串连接函数(例如CONCATENATE(B8,C8,D8))把同一

行的学号,姓名,扩展名字符串连接在一起,形成新的文件名列。在文件名列的右侧,再用

字符串连接函数CONCATENATE("ren ",A8," ",E8)形成命令字符串(即在上述Powershell

执行作业文件名换成该生的学号和姓名的命令)

5.在Powershell中执行命令

复制上述excel工作表的命令字符串所在列,黏贴到上述Powershell窗口中,回车,即可完

成。