You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何修改单文件PDF重命名批处理脚本以批量处理文件夹内PDF?

批量PDF提取信息并重命名脚本修改方案

直接给你调整好的完整脚本,你只需要根据实际情况替换源文件夹和目标文件夹的路径即可:

@echo off
setlocal enabledelayedexpansion

:: 配置文件夹路径 - 请根据你的需求修改
set "SOURCE_FOLDER=C:\Your\Source\PDF\Directory"
set "DEST_FOLDER=C:\Your\Target\Directory"

:: 自动创建目标文件夹(如果不存在)
if not exist "%DEST_FOLDER%" mkdir "%DEST_FOLDER%"

:processing_loop
:: 检查源文件夹是否还有PDF文件
dir /b "%SOURCE_FOLDER%\*.pdf" | findstr "^" >nul
if errorlevel 1 (
    echo 所有PDF文件已处理完毕,脚本即将退出。
    pause
    exit /b 0
)

:: 逐个遍历并处理每个PDF文件
for %%f in ("%SOURCE_FOLDER%\*.pdf") do (
    set "CURRENT_PDF=%%f"
    set "TEMP_TXT=%%~dpnf.txt"

    :: 提取当前PDF的文本内容到临时TXT
    pdftotext -raw "!CURRENT_PDF!" "!TEMP_TXT!"

    :: 从TXT中提取Number和NAME信息
    for /f "delims=- tokens=2" %%a in ('find "Number=" "!TEMP_TXT!"') do set "numeroa=%%a"
    for /f "delims== tokens=2" %%a in ('find "NAME=" "!TEMP_TXT!"') do set "nature=%%a"

    :: 清理变量中的多余空格(避免文件名出现无效空格)
    set "numeroa=!numeroa: =!"
    set "nature=!nature: =!"

    :: 生成新的文件名
    set "NEW_FILENAME=OCC-!numeroa:~0,5!#!nature!.pdf"

    :: 重命名并移动文件到目标文件夹
    move "!CURRENT_PDF!" "%DEST_FOLDER%\!NEW_FILENAME!"

    :: 删除临时TXT文件,避免占用空间或干扰后续处理
    del "!TEMP_TXT!"

    echo 已完成处理:!CURRENT_PDF! → %DEST_FOLDER%\!NEW_FILENAME!
)

:: 回到循环,继续处理剩余的PDF文件
goto processing_loop

核心改动说明:

  • 可配置路径:新增了SOURCE_FOLDERDEST_FOLDER变量,不用在脚本里到处修改路径,更易维护。
  • 循环处理逻辑:通过:processing_loop标签配合dir检查,确保脚本会持续运行直到源文件夹的PDF被处理完。
  • 逐个文件处理:替换了原脚本中批量重命名的粗暴操作,改用for循环遍历每个PDF,每个文件单独生成临时TXT,避免文件覆盖或信息混乱。
  • 临时文件清理:处理完每个PDF后自动删除对应的TXT,不会留下垃圾文件。
  • 变量清洗:添加了去除变量空格的操作,避免生成的文件名包含无效空格。
  • 进度提示:处理每个文件时会输出日志,方便你跟踪处理进度。

使用注意事项:

  1. 确保你的系统已经安装了pdftotext(属于Poppler工具集),并且它的路径已添加到系统环境变量PATH中,否则脚本会找不到该命令。
  2. 如果PDF内的Number=NAME=格式有变动,需要调整for /f中的delims参数来适配实际文本格式。

内容的提问来源于stack exchange,提问作者user854146

火山引擎 最新活动