Reg*_*gmi 7 imagemagick recursive image-manipulation mogrify
我认为命令选项中有一个简单的开关mogrify,告诉它也可以遍历子文件夹。我没有找到。在Linux上,“ find”命令似乎可以解决问题,那么在Windows上如何做到这一点呢?
magick mogrify -resample 72 -resize 700x700 -format png -path "C:\ImageMagick-7.0.8-Q16\dest" *.*
Run Code Online (Sandbox Code Playgroud)
有效,但我也需要它通过子文件夹递归。最简单的方法是什么?
理想情况下,我正在寻找要保留在目标中但仅包含处理后的图像的源目录结构。
您可以使用FOR /R循环从文件所在的根目录开始迭代文件,然后按照以下示例针对每个文件相应地运行这些命令。
如果省略该-path参数,它将针对它们所在的原始文件运行。因此,对于保留原始源的原始结构的简单解决方案,请考虑简单地将源文件的原始根文件夹复制到新位置,然后重命名该文件夹。
注意: 请务必替换C:\Source\Folder\Root为文件或文件子文件夹所在的确切文件夹,以便它将递归地对这些文件运行命令操作。
for /r "C:\Source\Folder\Root" %a in (*.*) do mogrify -resample 72 -resize 700x700 -format png "%~a"
Run Code Online (Sandbox Code Playgroud)
for /r "C:\Source\Folder\Root" %a in (*.*) do mogrify -resample 72 -resize 700x700 -format png "%~a" && IF NOT [%~Xa]==[.png] DEL /Q /F "%~a"
Run Code Online (Sandbox Code Playgroud)
批量替换(FOR /?)
此外,FOR 变量引用的替换也得到了增强。您现在可以使用以下可选语法:
Run Code Online (Sandbox Code Playgroud)%~xI - expands %I to a file extension only