在 Windows 操作系统中,有时我们需要批量提取文件的名称,例如在整理大量文档、图片或其他文件时,手动逐个记录文件名既繁琐又容易出错。而使用 BAT 脚本则可以高效地完成这一任务。以下是介绍与脚本示例。
创建 BAT 脚本文件
首先,在需要提取文件名的文件夹内的空白处,点击鼠标右键,选择 “新建”->“文本文档”。将新建的文本文档重命名为一个有意义的名称,比如 “ExtractFilenames.bat”(注意要确保文件后缀名确实为 “.bat”,如果没有显示后缀名,需要在文件夹选项中设置显示已知文件类型的扩展名)。
编写 BAT 脚本代码
使用记事本或其他文本编辑器打开刚刚创建的 “ExtractFilenames.bat” 文件,然后输入以下代码:
仅提取文件名脚本
@echo off
setlocal enabledelayedexpansion
REM 设置输出文件路径和名称,可根据需求修改
set "outputFile=filenames.txt"
REM 循环遍历当前目录下的所有文件
for %%f in (*) do (
REM 获取文件名并写入到输出文件中
echo %%~nf>>%outputFile%
)
echo 文件名提取完成!
代码解释
- “
@echo off
” 表示关闭命令行回显,使脚本运行时不会显示过多不必要的命令信息。 - “
setlocal enabledelayedexpansion
” 启用延迟环境变量扩展,这在处理一些复杂的变量操作时非常有用。 - “
set “outputFile=filenames.txt
”” 定义了输出文件名的名称为 “filenames.txt
”,如果想要更改输出文件名,可以修改这里的 “filenames.txt
” 部分。 - “
for %% f in (*) do
…” 是一个循环结构,用于遍历当前目录下的所有文件。“%%~nf
” 表示获取文件的名称(不包含扩展名),然后将其追加写入到 “% outputFile%
”(即前面定义的 “filenames.txt
”)文件中。
提取文件名和文件夹名脚本
@echo off
setlocal enabledelayedexpansion
REM 设置输出文件路径和名称,可根据需求修改
set "outputFile=names.txt"
REM 先提取文件夹名
for /d %%d in (*) do (
REM 获取文件夹名并写入到输出文件中
echo %%~nd>>%outputFile%
)
REM 提取文件名
for %%f in (*) do (
REM 获取文件名并写入到输出文件中
echo %%~nf>>%outputFile%
)
echo 名称提取完成!
在这个脚本中,for /d %%d in (*) do
这个循环专门用于遍历当前目录下的所有文件夹,并提取其名称(不含扩展名)写入到输出文件中。然后原有的 for %%f in (*) do
循环负责提取文件名并写入同一输出文件,这样最终生成的 names.txt
文件中就会包含当前目录下的文件夹名和文件名的列表。
运行 BAT 脚本
保存好编写的 “ExtractFilenames.bat” 脚本文件后,双击运行它。此时,脚本会自动遍历当前文件夹中的所有文件,并将文件名(不含扩展名)提取出来,依次写入到 “filenames.txt” 文件中。当脚本运行结束后,会在命令行窗口显示 “文件名提取完成!” 的提示信息。
打开 “filenames.txt” 文件,就可以看到批量提取出来的文件名列表了。
通过这个简单的 BAT 脚本,在 Windows 系统中就能够轻松地批量提取文件名,大大提高了处理文件相关任务的效率,无论是对于文件管理、数据整理还是其他需要文件名信息的场景都非常实用。
成品附件
1. 本栈资源大多存储在云盘,如发现链接失效,请联系我们,我们会第一时间更新。
2. 本栈内资源或文章大多收集自网络,请勿应用于商业用途,如有其它需求,请购买正版支持作者,谢谢!
3. 本栈收集的资源仅供内部学习研究软件设计思想和原理使用,学习研究后请自觉删除,请勿传播,因未及时删除所造成的任何后果责任自负。
4. 若您认为「UPKG.CN」发布的内容若侵犯到您的权益,请联系站长邮箱: admin@upkg.cn 进行删除处理。
暂无评论内容