【发布时间】:2017-09-16 00:43:38
【问题描述】:
提前感谢您提供的任何帮助。
在搜索所有相关线程和谷歌搜索后,我很难找到一种解决方案来输出用于合并两个 PDF 的变量名。
所以我需要将 100 个 PDF 合并(一次两个)到一个文件夹 c:/test
文件如下所示
Company Name Invoice No 123456
Company Name Invoice No 123456 details
现在我设法一次将两个文件移动到不同的文件夹并合并它们,但似乎无法获得我想要的输出名称,即在前面(或在end, not fused) 第一个合并的文件名。下面是我迄今为止的代码,但输出文件名是空白的,但被创建了。
对批处理脚本非常陌生,希望有任何帮助:)
@echo off
setlocal enableextensions enabledelayedexpansion
set pdftk=C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe
set Source=C:\test
set Target=C:\test\test2
set num=2
set filenumber=1
for /F "tokens=1,2 delims=:" %%f in ('dir /b /a-d "%source%\*.pdf" ^| findstr /n "^" ') do (
if %%f leq %num% (
copy "%source%\%%g" "%target%" /y > nul
) else goto endCopy
)
:endCopy
endlocal
for /F "tokens=1,2 delims=:" %%f in ('dir /b /a-d "%target%\*.pdf" ^| findstr /n "^" ') do (
if %%f leq %filenumber% ( set file=%%~nA
)
)
pdftk *.pdf cat output we_19_9_2017_%file%.pdf
【问题讨论】:
-
使用了错误的元变量。设置文件=%%~ng
-
谢谢,但不幸的是,我仍然得到变量 %file% 的空白输出
-
删除
SETLOCAL和ENDLOCAL行。您正在使用的代码不需要它们。在 endlocal 语句之后不再定义 %filenumber% 变量。
标签: batch-file pdf pdftk