使用批处理文件递归目录调整图像大小

Resize images with batch file recursive directories

我正在尝试在安装了 imagemagick 的 Windows 机器上调整一堆图像的大小,并且 git 用于 windows。

图片需要调整为当前大小的 50%。

在根目录中,有可能包含图像的目录和其他带有图像的目录。我需要调整所有图像的大小。在我的特殊情况下,我总共有 250 个文件夹(嵌套在不同级别),总共有 4110 张图像。

示例根文件夹

RootFolder
   Folder A
      ImageA.png
      SubFolder A
          ImageB.png
          ImageC.png
   Folder B
      Subfolder B
          ImageC.png

我正在尝试这种方式,但如果无法获得正确的路径。

for /r /d %%a in (*) 
do 
    find . -name "*.png" -print0 | xargs -0 mogrify -resize 50%

错误信息

find . -name "\Default\*.png" -print0   | xargs -0 mogrify -resize 50
Access denied - .
File not found - -NAME
File not found - -PRINT0

批处理文件中的此命令行如何调整当前目录和所有子目录中除隐藏目录和文件外的所有 PNG 图像的宽度和高度的 50%,并使用 IrfanView[= 覆盖输入文件35=]?

@for /R %%I in (*.png) do @"%ProgramFiles(x86)%\IrfanView\i_view32.exe" "%%I" /resize=(50p,50p) /convert="%%I"

直接从命令提示符 window 中执行的同一命令行,无需使用批处理文件:

for /R %I in (*.png) do @"%ProgramFiles(x86)%\IrfanView\i_view32.exe" "%I" /resize=(50p,50p) /convert="%I"

打开命令提示符 window、运行 for /? 并阅读输出帮助。

对于 IrfanView(供私人使用的免费软件)的选项,请阅读已安装 IrfanView[=35 的程序文件文件夹中的文本文件 i_options.txt =].

我没有安装 ImageMagick 并且您还没有发布 ImageMagick 命令行来调整 PNG 图像的大小,这就是原因为什么我使用 IrfanView.

发布命令行解决方案

请注意:此任务不需要批处理文件。打开 IrfanView,在菜单 File 中单击菜单项 Batch Conversion/Rename 并使用此对话框到 select 单击几下目录树中的所有 *.png 图像文件,设置调整大小和 PNG 优化的选项并执行批量转换。