如何修改Windows批处理脚本实现文件夹内PDF按首行文本批量重命名
批量重命名PDF批处理实现方案
核心调整说明
针对原单文件处理代码做了以下适配,实现批量处理:
- 开启延迟环境变量扩展,解决循环内变量赋值后无法实时读取的问题
- 用
for命令遍历当前目录下所有后缀为.pdf的文件 - 自动清理
pdftotext生成的临时TXT文件,不需要可删除对应逻辑
完整可运行代码
@echo off :: 开启延迟环境变量扩展 setlocal enabledelayedexpansion :: 遍历当前目录下所有PDF文件 for %%f in (*.pdf) do ( :: 提取当前PDF的文本内容生成同名TXT文件 pdftotext "%%f" :: 读取TXT文件第一行内容作为新文件名 set /p title=<"%%~nf.txt" :: 重命名PDF,用!包裹变量触发延迟扩展 ren "%%f" "!title!.pdf" :: 删除临时TXT文件,不需要可删除本行 del "%%~nf.txt" ) pause endlocal
注意事项
- 使用前请确保
pdftotext工具已添加到系统环境变量,否则需要替换为pdftotext的完整绝对路径 - 建议先备份所有待处理PDF文件再运行脚本,避免文件名读取异常导致文件混乱
%%~nf是批处理内置参数扩展语法,代表取当前遍历文件的文件名(不含后缀)- 如果PDF文本第一行包含Windows文件名禁止的字符(
\ / : * ? " < > |),会导致重命名失败,可额外添加特殊字符过滤逻辑适配
内容的提问来源于stack exchange,提问作者Mubeen Khan
相关产品推荐
相关产品推荐

