审计师在归档的时候,会大量整理文件,比如对归档附件的重命名。
如果你使用的Total Commander这款神器,它自带批量重命名功能。
这里分享下,以前自己用Excel VBA做的批量重命名工具。
代码其实也比较简单
1.获取文件名
选择一个文件夹目录,获取该文件夹目录下所有文件(不获取子文件夹)
代码如下:
Sub Getfd(ByVal pth)
Set Fso = CreateObject("scripting.filesystemobject")
Set ff = Fso.getfolder(pth)
For Each f In ff.Files
Rem 具体提取哪类文件,还是需要根据文件扩展名进行处理
Cells(Rows.Count, 1).End(3).Offset(1) = f.Name
Next f
End Sub
首先通过Getfd函数,获取给定文件目录下所有的文件名,填写在当前工作表的A列。
2.替换文件名
将B列填写好新的文件名称(如果不想改变就空白就行,不会进行操作)
当然改名的过程你可以通过excel的分列、函数等操作。
完成后点击“替换文件名”。
看本地文件就完成了文件批量重命名的工作。
代码如下:
Sub 替换文件名()
Set D = CreateObject("scripting.dictionary")
Dim n, i As Long
Dim ID, changeName As String
n = Cells(Rows.Count, 1).End(3).Row
For i = 2 To n
ID = Cells(i, 1)
changeName = Cells(i, 2)
D(ID) = changeName
Next i
Set Fso = CreateObject("scripting.filesystemobject")
Set ff = Fso.getfolder(mypath)
For Each f In ff.Files
If f.Name <> D(f.Name) And D(f.Name) <> "" Then
f.Name = D(f.Name)
End If
Next f
MsgBox ("已替换完成")
End Sub
当然,如果你想获取和修改一个文件目录下所有文件(包含子文件夹下的文件)那么可以,通过写一个递归函数达到目的。
工具下载链接:微云下载链接
本文首发于公众号:逆行的狗。
更多审计工具:github链接
审计效率提升课程(免费):B站链接