【发布时间】:2018-10-22 19:31:28
【问题描述】:
我正在尝试将许多 pdf 文件转换为 jpg,但前提是它只有 1 页。我宁愿使用多页 pdf 而不是图像。我尝试了不同的命令并让它们单独正常工作,identify 和convert。但是,我无法将它们组合起来在一个文件夹中工作。我还没有到条件操作的地步(如果少于 2 页,则转换它)。我正在使用此代码
pause
set path="C:\Program Files\ImageMagick-7.0.8-Q16\";%path%
FOR /r %%g in (*.pdf) DO (
for /f %%i in ('identify -format %n %%g') do set pgs=%%i
echo %pgs%
echo "%%g"
::convert %%~ng%%~xg %%~ng.jpg
::del %%~ng.pdf
)
pause
它说命令的语法不正确。注释掉的部分工作正常。我不太了解命令行,因此非常感谢任何帮助。
【问题讨论】:
-
用 Powershell 代替怎么样?
-
在设置和时需要使用ss64.com/nt/delayedexpansion.html
(code block)中的变量。 -
您将
FOR变量视为文件都在当前工作目录中。FOR命令的/R选项递归目录。这意味着您必须使用%%g作为您正在运行的命令的输入,因为它包含文件的完整路径。 -
@LotPings 我只是在顶部添加了
SETLOCAL EnableDelayedExpansion,但它仍然说语法不正确。 -
不要将页数设置为变量,而是使用
IF命令。for /f %%i in ('identify -format %n %%g') do if %%i geq 2 convert "%%g" "%%~dpng.jpg"
标签: windows batch-file for-loop command-line imagemagick-convert