如何批量获取当前文件夹下的文件名

最近,在和网友交流时,对方推荐了一个视频,我打开一看,是一个手工获取当前目录下所有文件名的手机视频。用的方法是在win11中复制所有文件的路径,然后粘贴到Excel当中,通过查找替换和分列的方法,清除冗余部分,最后得到文件名。

这种方法很巧妙,没有借助于编程或者不太常见的软件就获取了文件名。我随后也探索了一些简便的方法和大家一起来分享。

先说一下要求:获取当前文件夹下的所有png文件,不包括扩展名。

一、复制路径法——简单方便

使用快捷键ctrl+a来全先当前文件,然后选择资源管理器上方的【复制路径】,得到所有文件的路径。

获取文件路径

接着,把这些路径放到Excel文件当中,通过【查找替换】获取所有文件名,这是可以把不是png的文件删除,然后再把A列按照【.】分列,这样就得到了所有图片的文件名。

查找替换

这种方法简单、实用,没有什么技术含量,小白也能轻松上手。如果当前目录下多种类型文件混杂,那么还要一行一行删除不符合要求的路径。解决的办法是把文件按照类型排列,然后再选中获取路径。

二、Dos命令法

Dos命令是windows不断更新却从未放弃的内置功能,想当前我学计算机可是从dos开始学起,它的命令有时非常强大,比在windows下操作简单多了。

为了获取当前目录下的文件名,我们可以在当前目录上方输入【cmd】,进入dos界面。

在当前目录下进入dos

然后,输入命令:

dir *.png /b > filename.csv

把文件名写入csv文件

这样,我们就把扩展名为png的所有文件的文件名写入到了filename.csv文件当中。我们可以用Excel打开这个csv文件,再进行分列就可以了。

dos命令写入当前目录下的文件名

这种方法明显减少了操作步骤,不仅对文件名进行了筛选,也不用再复制和粘贴了,几乎是一步到位把文件名写入到了Excel文件当中。当然,这种方法虽然简便,但是无法提取子目录中的文件名。

三、批处理命令法

批处理命令比一般的dos命令更强大,因为它可以便历子目录,甚至还可以批量创建文件,比如上面的写入文件名到csv文件中的dos命令还可以改写为以下批处理命令:

for %F in (*.png) do @echo %F>>file.csv

以上命令的功能是列出当前目录下所有 .png 文件的文件名(扩展名),并将结果追加到 filename.csv文件中。

如果不想带扩展名,也可以用以下代码一键实现:

for %F in (*.png) do @echo %~nF>>file.csv

在上面的二条命令中, for 循环来遍历当前目录下所有的 .png 文件。

for %F in (*.png):这是 for 命令的语法,它会遍历当前目录下所有文件名匹配 *.png 的文件。 %F 是循环变量,它代表当前正在处理的文件名。

do @echo %~nF>>file.txt:do 关键字指示在每次迭代时要执行的命令。@echo %~nF 用于打印当前文件名的文件名部分(不带扩展名)。

%~nF 是获取 %F 的文件名部分的语法。

>>file.txt 表示将输出追加到 file.txt 文件末尾,而不是覆盖原有内容。

四、Python命令法

如果电脑上安装的有python,还可以使用Python编程的方法,导入os或者pathlib模块,通过遍历列表中的每一个元素,把它们追加到Excel表中,然后再保存即可轻松实现指定文件名。

#导入模块
import os
from openpyxl import Workbook

# 创建一个工作簿对象
wb = Workbook()

# 激活第一个工作表
ws = wb.active

# 你的列表数据
data = [file for file in os.listdir() if file.endswith(".png")]
# 如果不要扩展名,则可以这样写:
# data = [os.path.splitext(file)[0],for file in os.listdir() if file.endswith(".png")]
# 将数据逐行写入工作表
        
for row in data:
    ws.append([row])

# 保存工作簿
wb.save('output.xlsx')

五、VBA 方法

如果经常需要获取当前目录下的所有文件名,就可以用下面的VBA代码:

Sub GetFileNames()
    Dim FileSystem As Object
    Dim Folder As Object
    Dim File As Object
    Dim i As Integer
    
    ' 清空Sheet1中的数据
    Sheets("Sheet1").Cells.Clear
    
    ' 创建FileSystem对象
    Set FileSystem = CreateObject("Scripting.FileSystemObject")
    
    ' 获取当前目录路径
    Set Folder = FileSystem.GetFolder(ThisWorkbook.Path)
    
    ' 在Sheet1中显示文件名
    i = 1
    For Each File In Folder.Files
        Sheets("Sheet1").Cells(i, 1).Value = File.Name
        i = i + 1
    Next File
End Sub

我们可以将上面的代码复制并粘贴到 Excel 的 VBA 编辑器中(按下 Alt + F11 打开),然后在工程资源管理器中的 Microsoft Excel Objects 中找到 ThisWorkbook,双击打开,将代码粘贴到打开的代码窗口中。然后关闭 VBA 编辑器,保存文件。

每当你运行 GetFileNames这个宏时,它将在 Sheet1 中列出当前目录下的所有文件名。如下图所示:

这种方法是一步到位,轻松获取了所有的文件名。不过要注意,VBA运行时会清空Sheet1中的数据,所以保证当前工作表是sheet1,然后没有其它重要数据。

六、学后反思

  1. 同一功能我们可以采用多种方法来实现,从手工复制粘贴到后来的dos命令或者编程,我都可以轻松实现达到最后的目标。大家可以根据自己喜好来进行取舍。
  2. 第一种方法简单好记,建议小白学习。第二种和第三种方法涉及dos命令,需要大家记忆一下。第三种和第四种分别保存在py和xls文件中,基本上是开箱即用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/368540.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

EasyX图形库学习(二)

目录 一、文字绘制函数 settextstyle 设置当前文字样式。 outtextxy 在指定位置输出字符串。 ​编辑 但如果直接使用,可能有以下报错: 三种解决方案: 将一个int类型的分数,输出到图形界面上 如果直接使用: 会把score输入进去根据A…

被人疯狂吐槽的预制菜,居然是资本看重的“万亿级”市场?

被人疯狂吐槽的预制菜,居然是资本看重的“万亿级”市场? 文丨微三云营销总监胡佳东,点击上方“关注”,为你分享市场商业模式电商干货。 - 大家是不是以为只有被天天吐槽难吃的外卖和小饭店,才会用预制菜,…

#从零开始# 在深度学习环境中,如何用 pycharm配置使用 pipenv 虚拟环境

为Python项目创建虚拟环境 在深度学习环境和一般python环境中安装pipenv基本一致,只需要确认好pipenv指定的python版本即可,安装pipenv前,可以通过python --version来确认安装版本 快捷键:crtl alt S 查看interpreter,查看所有…

代码随想录算法训练营第42天 | 01背包问题,你该了解这些! 01背包问题,你该了解这些! 滚动数组 416. 分割等和子集

目录 01背包问题,你该了解这些! 01 背包 二维dp数组01背包 💻实现代码 01背包问题,你该了解这些! 滚动数组 一维dp数组(滚动数组) 💻实现代码 416. 分割等和子集 &#x1f…

《Numpy 简易速速上手小册》第9章:Numpy 在机器学习中的应用(2024 最新版)

文章目录 9.1 数据预处理9.1.1 基础知识9.1.2 完整案例:数据标准化9.1.3 拓展案例 1:缺失值处理9.1.4 拓展案例 2:非数值数据的转换 9.2 特征提取和处理9.2.1 基础知识9.2.2 完整案例:特征归一化9.2.3 拓展案例 1:特征…

MySQL知识点总结:构建可靠高性能的关系型数据库

摘要:MySQL是一款广泛使用的开源关系型数据库管理系统,具备可靠性和高性能的特点。本文将总结MySQL的一些重要知识点,帮助读者了解如何使用MySQL构建可靠高性能的关系型数据库。 正文: ### 1. 数据类型 MySQL支持多种数据类型&…

SpringBoot整合Activiti7—— 补偿边界/补偿中间事件(十五)

文章目录 补偿边界/补偿中间事件代码实现xml文件测试流程流程执行步骤 补偿边界/补偿中间事件 补偿事件可以被触发来回滚或修复之前已经完成的任务或活动。 补偿事件通常与错误边界事件(Error Boundary Event)结合使用。当任务或活动发生异常时&#xff…

SQL sever2008中创建用户并赋权

一、创建数据库dream CREATE DATABASE dream; 二、创建登录用户XZS 法一:使用SSMS创建 通过查询 sys.syslogins 系统视图来确定当前登录是否具有系统管理员权限。执行以下查询语句: SELECT name, isntname FROM sys.syslogins WHERE sysadmin 1;选…

Android Studio从零基础到APP上线(3)

第3章 简单控件 本章介绍App开发常见的几类简单控件的用法,主要包括:显示文字的文本视图,容纳视图的常用布局,响应点击的按钮控件,显示图片的图像视图等。然后结合本章所学的知识,演示一个实战项目“简单计算器”的设计与实现。 3.1 文本显示 本节介绍如何在文本视图Tex…

Jmeter,如何从数组参数中取值

有个post请求,参数“equipment_ids”,是个数组,需求每次执行的时候,按顺序取equipment_ids中不同的值 要实现在 JMeter 中每次执行请求时按顺序取不同的 equipment_ids 中的值,你可以使用 Counter 元件来生成索引&…

【面试深度解析】掌上先机后端面试(Java基础能力夯实)

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复 「资料」 可领取编程高频电子书! 在我后台回复「面试」可领取硬核面试笔记! 文章导读地址…

HTML音频标签

新增的语义化的标签: 即直接给了一个具象化的盒子。 新增的多媒体标签: 视频格式: 当都不支持的时候会显示文字。 video仍然是可以看成一个盒子。 音频格式: 新增的input 表单控件: 新增的表单属性: 提示文…

MyBatis 的XML实现方法

MyBatis 的XML实现方法 MyBatis 的XML实现方法前情提示创建mapper接口添加配置创建xml文件操作数据库insert标签delete标签select标签resultMap标签 update标签sql标签,include标签 MyBatis 的XML实现方法 前情提示 关于mybatis的重要准备工作,请看MyBatis 的注解实现方法 创…

Java SWT Composite 绘画

Java SWT Composite 绘画 1 Java SWT2 Java 图形框架 AWT、Swing、SWT、JavaFX2.1 Java AWT (Abstract Window Toolkit)2.2 Java Swing2.3 Java SWT (Standard Widget Toolkit)2.4 Java JavaFX 3 比较和总结 1 Java SWT Java SWT(Standard Widget Toolkit&#xff…

Power BI案例-链接Mysql方法

Power BI案例-连锁Mysql 方法1-通过组件mysql-connector-net-8.3.0: 选择文件–获取数据–选择MySQL数据库–选择链接 提示无组件,选择了解详细情况 弹出浏览器,选择下载 不用登陆,可以直接下载 下载的组件如下&#xff1a…

【开源】基于JAVA+Vue+SpringBoot的陕西非物质文化遗产网站

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 设计目标2.2 研究内容2.3 研究方法与过程2.3.1 系统设计2.3.2 查阅文献2.3.3 网站分析2.3.4 网站设计2.3.5 网站实现2.3.6 系统测试与效果分析 三、系统展示四、核心代码4.1 查询民间文学4.2 查询传统音乐4.3 增改传统舞…

代码随想录算法训练营Day46|139.单词拆分、多重背包理论基础、背包问题总结

目录 139.单词拆分 方法一:回溯法 算法实现 方法二:背包问题 算法实现 多重背包理论基础 思路 算法实现 背包问题总结 前言 背包递推公式 遍历顺序 0-1背包 完全背包 139.单词拆分 题目链接 文章链接 方法一:回溯法 在回溯专题…

Endnote常见设置(硕士毕业论文参考文献修改)

1、根据大多数期刊或学校使用的标准,英文名首字母大写后续字母小写。 2、需要手动调整Endnote中的参考文献相关内容 3、关于姓名大小写设置 AS IS是不更改大小写,EndNote库中文献的大小是什么样,Word中就显示什么样。选择Normal为首字母大…

HDMI2.1之eARC简介-Dolby Atmos和DTS:X

文章目录 eARC目的更大的带宽更高质量音频支持对象型音频与CEC(Consumer Electronics Control)的兼容性: 适应流媒体发展Dolby AtmosDTS:X高分辨率音频更高的音频位深度和采样率低延迟音频 对象型音频格式独立对象三维定位动态音场适应性和灵…

嵌入式——串行外围设备接口(SPI)

目录 一、初识SPI 1. 介绍 2. 特性 补: 二、物理层 1. SS (Slave Select) 2. SCK (Serial Clock) 3. MOSI (Master Output, Slave Input) 4. MISO (Master Input&#xff0…