Question

I have a text file which contains the location of a list of pdf files. I am writing a windows batch file that needs to read this line by line and append in a command which will be executed to merge all the pdfs into 1 pdf using pdftk.

Below is the example command:

pdftk "C:\test\1.pdf" "C:\test\2.pdf"......"C:\test\50.pdf" cat output merged.pdf

I came across this How do you loop through each line in a text file using a windows batch file? for reading text file.

But how do I read and append to a variable which can then be used for the command mentioned above?

Était-ce utile?

La solution

Assuming your list of pdf files looks like this

pdf1.pdf
pdf2.pdf
pdf3.pdf

Then you can use this to concatenate them into one variable

setlocal enabledelayedexpansion
set files=
for /f "tokens=*" %%a in (pdfs.txt) do (
if defined files (
set files=!files! "%%a"
) else (
set files="%%a"
)
)
pdftk !files! cat output merged.pdf

The if else is there to remove the leading space from the variable, I wasn't sure if that would make a difference. If it doesn't then you can get rid of it and just use

setlocal enabledelayedexpansion
set files=
for /f "tokens=*" %%a in (pdfs.txt) do (    
set files=!files! "%%a"
)
pdftk !files! cat output merged.pdf
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top