EXCEL批量提取文件名

批量提取当前文件夹下的所有文件的文件名(不含当前文件夹下的下级文件夹)

打开记事本,输入命令 
DIR *.* /B>Filename-list.txt 
然后另存为XXX.bat(XXX是任意名)。那么这行代码是什么意思呢 
DIR 是地址命令,*.* / 指的是根目录,第二个*指文件后缀可以修改过滤(txt,word,pdf...)
B> 是提取文件名的功能命令,
Filename-list 是保存批量文件名的文件名(有点绕),
txt是生成文件的文档类型。
整行命令的意思就是在当前文件夹的根目录提取所有文件的文件名到 Filename-list.txt 文件当中

 

注意:文件要另存为后缀名为.bat ,保存类型更改为所有文件。

 双击运行一下这个bat文件脚本

会自动生成一个Filename-list文件

 

 

另外,还发现我们不仅仅能够生成txt文件

  DIR *.* /B> My测试.xls
  DIR *.* /B> My测试.txt
  DIR *.* /B> My测试.doc
  DIR *.* /B> My测试.swf

可根据需要生成不同类型的文件,批量提取文件名的教程就到此结束了,掌握这个方法,以后想要提取文件名的时候就不会不知所措或者是一个个复制粘贴啦,这个方法可以大大提高工作效率节省时间。

按层级显示批量提取当前文件夹下的所有文件的文件名(含当前文件夹下的下级文件夹)

在文件夹中新建文本文档输入

@ECHO OFF
tree /F > 按层级显示.txt

 

保存的时候注意选择另存为--右下角编码选择ANSI 不选择这个按默认编码有时候点击运行没反应,文件后缀改成bat

双击这个bat文件,就会生成一个文件。
打开会发现你们已经提取了文件名,并按层级关系排序

 

通过excel 批量提取当前文件夹下的所有文件的文件名(不含当前文件夹下的下级文件夹)

以Excel 2016为例,说说具体的操作方法:
1、依次单击【数据】→【获取数据】→【自文件】→【自文件夹】
2、点击【浏览】按钮,找到文件夹位置。
3、在数据查询编辑器中,右键单击Name字段,删除其他列。
4、最后单击【关闭并上载】。

使用此方法,可以快速提取出包含子文件夹在内的所有文件列表,如果在文件夹中增加了子文件夹或是新增了文件,只要在汇总表中单击右键→刷新。就可以可获取最新的文件名列表。

如果是低版本的Excel,还可以使用VBA代码的方法来提取:

Sub FileDir()
Dim p$, f$, k&
'获取用户选择文件夹的路径
With Application.FileDialog(msoFileDialogFolderPicker)
'选择文件夹
If .Show Then
p = .SelectedItems(1)
'选择的文件路径赋值变量P
Else
Exit Sub
'如果没有选择保存路径,则退出程序
End If
End With
If Right(p, 1) <> "\" Then p = p & "\"
f = Dir(p & "*.*")
'返回变量P指定路径下带任意扩展名的文件名
'如果有超过一个文件存在,将返回第一个找到的文件名
'如果一个文件都没有,则返回空
[a:a].ClearContents '清空A列数据
[a1] = "目录"
k = 1
Do While f <> ""
'如果文件名不为空,则……
k = k + 1
'累加文件个数
Cells(k, 1) = f
f = Dir
'第二次调用Dir函数,但不带任何参数,则将返回同一目录下的下一个文件。
Loop
MsgBox "OK"
End Sub

右键【Sheet1】→【查看代码】

 

 

 回到excel 点击【开发工具】(没有这个按钮的话点击【文件】→【选项】→【自定义功能区】把开发工具勾选上)→【插入】(选第一个按钮)

 

 在表格画一个方框

 

 选择这个即可

点击按钮1 选择要提取的文件夹

 

posted @ 2023-01-28 14:54  聆听说书人  阅读(902)  评论(0)    收藏  举报