在 bat Windows 中使用不同 Magick 命令的嵌套循环
Nested loop with different Magick command in bat Windows
我正在尝试将许多 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
它说命令的语法不正确。注释掉的部分工作正常。我不太了解命令行,所以非常感谢任何帮助。
这是最终有效的代码。它做了很多小事
- 遍历文件夹和子文件夹
- 评估每个pdf文件
- 如果 pdf 文件的名称中没有“c”并且超过 1 页,请重命名为“c”在扩展名之前的名称之后。 (这有助于避免处理已处理的文件)
SETLOCAL 启用延迟扩展
pause
set path="C:\Program Files\ImageMagick-7.0.8-Q16\";%path%
FOR /d /R %%i in (*) DO (
cd "%%i"
FOR /r %%g in (*.pdf) DO (
(Echo "%%g" | FIND /I "_c_" 1>NUL )||(
for /f %%i in ('magick identify -format %%n "%%g"') do if %%i gtr 1 ren %%~ng%%~xg %%~ng_c_%%~xg
)
)
cd..
)
pause
我正在尝试将许多 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
它说命令的语法不正确。注释掉的部分工作正常。我不太了解命令行,所以非常感谢任何帮助。
这是最终有效的代码。它做了很多小事
- 遍历文件夹和子文件夹
- 评估每个pdf文件
- 如果 pdf 文件的名称中没有“c”并且超过 1 页,请重命名为“c”在扩展名之前的名称之后。 (这有助于避免处理已处理的文件)
SETLOCAL 启用延迟扩展
pause
set path="C:\Program Files\ImageMagick-7.0.8-Q16\";%path%
FOR /d /R %%i in (*) DO (
cd "%%i"
FOR /r %%g in (*.pdf) DO (
(Echo "%%g" | FIND /I "_c_" 1>NUL )||(
for /f %%i in ('magick identify -format %%n "%%g"') do if %%i gtr 1 ren %%~ng%%~xg %%~ng_c_%%~xg
)
)
cd..
)
pause