用于将pdf页面尺寸添加到文件名的Windows批处理操作?

时间:2014-03-19 11:35:42

标签: windows pdf batch-file batch-rename

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

1 个答案:

答案 0 :(得分:1)

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

@echo off
setlocal enabledelayedexpansion

set "pdfi=U:\Scripts\Utilities\xpdf\pdfinfo.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