.bat获取文件夹内所有文件的名字

本文介绍了一种使用CMD脚本批量获取指定路径下所有文件名称的方法,避免了手动复制的繁琐过程。通过dir命令结合重定向,可以将文件名输出至TXT文件,同时提供了dir命令的详细参数说明。

一、最近想要获取文件夹内所有文件的名称,但是一个个的复制太麻烦了,所以决定写个脚本自动获取。

@echo off

:获取对应路径下文件名,
DIR "路径" /B >a.TXT

pause

二、命令白皮书

显示目录中的文件和子目录列表。

DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
  [/O[[:]sortorder]] [/P] [/Q] [/R] [/S] [/T[[:]timefield]] [/W] [/X] [/4]

  [drive:][path][filename]
              指定要列出的驱动器、目录和/或文件。

  /A          显示具有指定属性的文件。
  属性         D  目录                R  只读文件
               H  隐藏文件            A  准备存档的文件
               S  系统文件            I  无内容索引文件
               L  解析点             -  表示“否”的前缀
  /B          使用空格式(没有标题信息或摘要)。
  /C          在文件大小中显示千位数分隔符。这是默认值。用 /-C 来
              禁用分隔符显示。
  /D          跟宽式相同,但文件是按栏分类列出的。
  /L          用小写。
  /N          新的长列表格式,其中文件名在最右边。
  /O          用分类顺序列出文件。
  排列顺序     N  按名称(字母顺序)     S  按大小(从小到大)
               E  按扩展名(字母顺序)   D  按日期/时间(从先到后)
               G  组目录优先           -  反转顺序的前缀
  /P          在每个信息屏幕后暂停。
  /Q          显示文件所有者。
  /R          显示文件的备用数据流。
  /S          显示指定目录和所有子目录中的文件。
  /T          控制显示或用来分类的时间字符域。
  时间段      C  创建时间
              A  上次访问时间
              W  上次写入的时间
  /W          用宽列表格式。
  /X          显示为非 8.3 文件名产生的短名称。格式是 /N 的格式,
              短名称插在长名称前面。如果没有短名称,在其位置则
              显示空白。
  /4          用四位数字显示年

可以在 DIRCMD 环境变量中预先设定开关。通过添加前缀 - (破折号)
来替代预先设定的开关。例如,/-W。

要实现获取指定文件夹下所有子文件夹中的文件,并按相对路径+文件名格式输出到文本文件,可以使用以下 `.bat` 脚本[^3]。该脚本利用 `dir` 命令结合 `for /f` 循环提取文件信息,并通过字符串处理生成相对路径。 ### 示例代码 ```batch @echo off setlocal enabledelayedexpansion REM 设置源文件夹和输出文件 set "Source=C:\path\to\your\folder\" set "OutputFile=output.txt" REM 清空或创建输出文件 echo. > "%OutputFile%" REM 遍历文件夹及其子目录中的所有文件 for /r "%Source%" %%f in (*) do ( REM 获取文件的完整路径 set "FullPath=%%f" REM 替换掉源文件夹路径,得到相对路径 set "RelativePath=!FullPath:%Source%=!" REM 输出相对路径+文件名文件 echo !RelativePath! >> "%OutputFile%" ) echo 文件列表已生成在 "%OutputFile%" ``` ### 说明: - `set "Source=C:\path\to\your\folder\"`:设置需要遍历的根目录。 - `set "OutputFile=output.txt"`:定义输出文件名称。 - `for /r "%Source%" %%f in (*) do (...)`:递归遍历 `%Source%` 下的所有文件,包括子目录。 - `set "RelativePath=!FullPath:%Source%=!"`:通过字符串替换去除源路径前缀,从而获得相对路径。 - `echo !RelativePath! >> "%OutputFile%"`:将相对路径写入目标文本文件。 ### 输出示例 假设文件夹结构如下: ``` C:\example\ ├── file1.txt ├── folder1\ │ └── file2.txt └── folder2\ └── file3.txt ``` 运行脚本后,`output.txt` 的内容将是: ``` file1.txt folder1\file2.txt folder2\file3.txt ``` ---
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值