Windows批处理操作,用于向文件名添加pdf页面尺寸



我需要将许多单页pdf的页面大小信息包含到它们的文件名中。如。"150 x250mm.pdf"。我发现没有任何重命名软件能做到这一点。我怀疑这可以使用批处理文件和pdfinfo.exe(来自xpdf套件)来完成,但我不知道如何利用它。你能给我一些提示吗?

是的,您可以将后记点转换为MM。在这种情况下,脚本位于包含要重命名的PDF的顶级文件夹中。它会进入子文件夹。如果您不希望或不需要这样做,请从第5行dir命令中删除/s。根据需要更改路径。

@echo off
setlocal enabledelayedexpansion
set "pdfi=U:ScriptsUtilitiesxpdfpdfinfo.exe"
for /f "delims=" %%a in ('dir /b /s *.pdf') do (
  for /f "tokens=3,5 delims= " %%b in (
    '%pdfi% -meta "%%a"^|find /i "Page size:"') do (
      set pts=%%b %%c
        for %%d in (!pts!) do (
          call :Eval %%d*.352777778 mm
          set "mm1=!mm1!x!mm!"
        )
        ren "%%~dpfnxa" "!mm1:~1!.pdf"
        set mm1=
  )
)
exit /b
:Eval <in> <out>
setlocal
if exist eval.vbs del eval.vbs
>eval.vbs echo wsh.echo formatnumber(eval("%1"),0)
for /f "delims=" %%a in ( 
  'cscript //nologo eval.vbs' 
) do endlocal & set %~2=%%a
del eval.vbs

最新更新