记录4个批量提取文件名的方法

本文适用于对于同一路径下多个文件的文件名批量提取。
一、Window资源管理器自带功能
1.全选文件

2.按住shift键,并在文件上右键点击

可以看到“复制文件地址”选项,点击并粘贴到Excel里面,即可得到批量文件名
也可以点击右上角“复制路径”按钮,可以得到相同的结果。

该种方式复制出来的文件名带有路径,在文档软件中使用替换功能去除不需要的信息即可。
二、Total Command方法(笔者使用飞扬时空版本)
1.打开total commonder,选中需要复制的文件

2.进入菜单栏-选择-复制文件名

即可以得到全部文件名
三、批处理(bat)方法
创建一个txt,粘贴下述任意一项的代码,保存并关闭。将该txt后缀名“.txt”更改为“.bat”,双击运行即可。
1.文件名带后缀名的代码
DIR *.* /B >LIST.txt
2.文件名不带后缀名的代码
@echo off
cd /d %~dp0
for /f "delims=" %%i in ('dir /b /a-d') do (echo %%~ni>> LIST.txt)
缺点:文件名中如果含有特殊字符(如“•”),会无法正常显示。
四、Excel VBA方法
在目标路径下创建Excel文件,进入 菜单栏-开发工具-Visual Basic。粘贴下述任一代码
1.使用Dir函数的代码
Sub 提取文件名()
'获取文件名和修改日期
Dim path, file, i
path = Application.ThisWorkbook.path & "\"
'只是文件名 不是文件对象
file = Dir(path & "*.*")
With ThisWorkbook.Worksheets(1)
.Columns(1).Clear
.Cells(1, 1) = "文件名"
.Cells(1, 2) = "修改日期"
i = 1
Do While file <> ""
If file <> ThisWorkbook.Name Then
.Cells(i, 1) = file
.Cells(i, 2) = FileDateTime(path & file)
End If
i = i + 1
file = Dir
Loop
End With
'自动适应列宽
Columns("A:B").AutoFit
End Sub
缺点:文件名中如果含有特殊字符(如“•”),会无法正常显示。
2.使用Fso方法的代码
Sub 提取文件名()
'获取文件名和修改日期
Dim path As String, fileName As String, i As Integer
Dim fso As Object, file As Object
Set fso = CreateObject("Scripting.FileSystemObject")
path = Application.ThisWorkbook.path
Set file = fso.GetFolder(path)
With ThisWorkbook.Worksheets(1)
.Columns(1).Clear
.Cells(1, 1) = "文件名"
.Cells(1, 2) = "修改日期"
i = 2
For Each file In fso.GetFolder(path).files
If file.Name <> ThisWorkbook.Name Then
.Cells(i, 1) = file.Name
.Cells(i, 2) = file.DateLastModified
i = i + 1
End If
Next file
End With
'自动适应列宽
Columns("A:B").AutoFit
Set fso = Nothing
Set file = Nothing
End Sub