遍历目录,对文件执行 exe,使用文件夹名称作为结果文件

遍历目录,对文件执行 exe,使用文件夹名称作为结果文件

我有一个包含杂志的文件夹,其页面为 JPEG 图像格式。
如下所示:

The_Camera_Craftsman_1955_Vol_l_Iss_2 
The_Camera_Craftsman_1955_Vol_l_Iss_3 
The_Camera_Craftsman_1955_Vol_l_Iss_4 
The_Camera_Craftsman_1955-03_Vol_l_Iss_l 
The_Camera_Craftsman_1969_-_1978_Vol_25_Index 
The_Camera_Craftsman_1969_-_1979_Vol_25_Index
The_Camera_Craftsman_1974_Vol_20_Index 
The_Camera_Craftsman_1975_Vol_21_Index 
The_Camera_Craftsman_1976_Vol_22_Index 
The_Camera_Craftsman_1977_Vol_23_Index
The_Camera_Craftsman_January-February_1956_Vol_l_Iss5

在此处输入图片描述

我将 img2pdf.exe 放在一个单独的文件夹中。我希望循环遍历所有文件夹,然后执行img2pdf.exe在其中,例如使用以下参数

img2pdf.exe *.jpeg -o ####.pdf 

#### 通过 Windows CMD 替换为当前目录的文件名多变的等等。正如你所看到的,我想要杂志的发行期(文件夹名称)作为pdf文件名。

我目前发现

我可以从不同的目录执行 img2pdf,如上所述这里,但所有手动输入等包括文件名。

我可以循环遍历文件夹并执行如上所述的操作这里,但它无法在每个文件夹中生成 .pdf。相反,它在根目录中生成一个 0kb 的 .pdf 文件。我尝试将当前文件夹名称作为 pdf 文件名,但没有成功,该文件只是简单地称为 %~nxI.pdf:

for /D %G in ("F:\tempbatch\*") do "...\img2pdf.exe" *.jpg -o "%~nxI".pdf "%~fG"

那么 - 有什么指点吗?

答案1

@echo off 

set "_img2pdf=F:\book stuff\ocrmypdf copy folder (making)\img2pdf.exe"

for /r "F:\tempbatch" /d %%i in (*)do "%_img2pdf%" "%%~dpnxi\*.jpg" -o "%%~dpnxi\%%~nxi.pdf"

观察:使用您的文件/可执行文件 链接在问题中

相关内容