This Content is from SuperUser. Question asked by argo
I feel a little embarrassed to ask but struggling to piece it all together here.
I have a folder containing magazines, whose pages are in JPEG image format. Like so:
I have img2pdf.exe located in a separate folder. I wish to loop through all the folders, and execute img2pdf inside them, for instance with the following arguments
img2pdf.exe *.jpeg -o ####.pdf
But #### is replaced with the current directory’s file name through a Windows CMD variable etc. As you can see, I want the issue of the magazine (folder name) as the pdf file name.
What I have found so far
I can execute img2pdf from a different directory as described here, but all manual inputs etc including file name.
I can loop through folders and execute something as described here, but it fails to produce a .pdf in each folder. Instead, it produces a single 0kb .pdf file at the root directory. And I tried to get the current folder name as the pdf file name, but it didn’t work, the file was simply called %~nxI.pdf:
for /D %G in ([folder directory]) do "[img2pdf.exe location]" *.jpg -o "%~nxI".pdf "%~fG"
So – any pointers?
You should use a backslash
\, instead of forward slash.
Or, wrap it with double quotes
This Question was asked in StackOverflow by Ben and Answered by Ruel It is licensed under the terms of CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.